making simple plots and graphs

Learning APL or new to Dyalog? Ask "silly" questions here, without fear...

Re: making simple plots and graphs

Thanks, that makes it much clearer now! :-)

Unfortunately, the only solution I'd know for that would be "Ktype" from RainPro - and that is not supported with SharpPlot, so I'm at the end of my rope. Hopefully someone else can jump in...!

BTW, I've edited your fn just a little bit to make it a bit more compact etc:
Code: Select all
` stu;⎕IO;n;h;v;mat v←(32?32)÷32 ⍝ Fake data for testing h←(32?32)÷32 ⍝ Fake data for testing ⎕IO←1⍝ diff←(⍴v)-⍴h⍝ :If diff=0 ⍝ v and h are of the same length⍝     n←⍴v⍝ :ElseIf diff>0 ⍝ v is longer⍝     n←⍴v⍝     h←n↑h⍝ :Else ⍝ h is longer⍝     n←⍴h⍝     v←n↑v⍝ :EndIfn←⍴v ⋄  diff←n-⍴h :If n>⍴h     h←n↑h :Elseif n<⍴h ⍝ h is longer     n←⍴h     v←n↑v :EndIf mat←(⍳n)⍪v,[0.5]h ch.DefineFont'GA' 'Garamond' ch.New 0 0 432 300 ch.Set'DStyle' 'Rows' ch.Set('style' 'XYPLOT,BOXED,NOMARK,SURFACE,GRID')('Mleft' 25)('Mright' 24)('HMAR' 50 24) ch.Set'Ystyle' 'LEFT' ch.Set('Hfont' 'GABI,12')('Lfont' 'GA') ch.Set('XRANGE' 0(⌈/mat[1;]))('YRANGE' 0((⌈/mat[2;])⌈(⌈/mat[3;]))) ch.Set('PATTERN' 0) ch.Set'HEAD' 'Correlation' ch.Set'KeyText' 'Vertical,Horizontal' ch.Set'Ktype' 'Line,Line'  ⍝ not supported ch.Plot mat PG←ch.Close View PG`
Last edited by MBaas on Tue Jun 07, 2016 10:11 am, edited 1 time in total.

MBaas

Posts: 156
Joined: Thu Oct 16, 2008 1:17 am
Location: Gründau / Germany

Re: making simple plots and graphs

Thanks for compacting my function. It does look a bit more professional now!

A while back I wrote a similar function using RainPro. All the right things seemingly just happened without my having to study manuals and find sample code. This makes me wonder why Dyalog is abandoning RainPro. The Sharp Plot APL documentation (as opposed to just example code) is inadequate, and there are problems like the one you've been helping me with.
Stu

Posts: 97
Joined: Thu Dec 31, 2015 1:30 am

Re: making simple plots and graphs

Just for the sake of comparison, here's what I did in RainPro:

v matplot h;rv;rh;n;MAT;PG

⍝ Type this before using matplot:
⍝ )copy rainpro ch PostScrp

rv←⍴v
rh←⍴h
:If rh>rv
v←rh↑v
n←rh
:Else
h←rv↑h
n←rv
:EndIf
MAT←((n,1)⍴v),(n,1)⍴h
ch.Set('YStyle' 'ForceZero,plain')('Ytick' 2 1)
ch.Plot MAT
PG←ch.Close
PostScrp.View PG
Stu

Posts: 97
Joined: Thu Dec 31, 2015 1:30 am

Re: making simple plots and graphs

Hi !

SharpRain is there only as a helper to migrate old RainPro scripts to SharpPlot.

For the help samples, I apologise for all of them being in C#. Translating them all is not a small task. In the mean time, the SharpPlot help has an entry about that : Getting Started -> SharpPlot in different languages.
http://sharpplot.com/Languages.htm
It shows a typical script (all API usages) in different languages, as a rosetta stone to convert samples.

Cheers,

Nic.
Nicolas|Dyalog

Posts: 13
Joined: Wed Sep 10, 2008 9:39 am

Re: making simple plots and graphs

Hi Stu,

This is what Nic has written in the past about why we are recommending the move to SharpPlot:

SharpPlot has been around for about ten years, as a C#-compiled refactored version of RainPro, and is its definite replacement.

- More consistent API, and clearer documentation
- Nicer graphics (alpha blending, anti-aliased raster graphics)
- Better performance (SharpPlot is consistently several times faster than RainPro)
- Multi-platform (RainPro was supported only on windows)

Regards,

Vince
Vince|Dyalog

Posts: 335
Joined: Wed Oct 01, 2008 9:39 am

Re: making simple plots and graphs

The SharpPlot graphics are definitely a lot nicer than RainPro's, but the RainPro version of my little plotting function runs quite a bit faster (because it's not an emulation?).

Full documentation of the APL implementation of Sharp Plot is indispensable; otherwise, you have to peruse the Samples and/or use the "Rosetta Stone" example to infer the correct syntax, a tedious and error-prone process.

Thanks to everyone who responded to my questions.
Stu

Posts: 97
Joined: Thu Dec 31, 2015 1:30 am

Re: making simple plots and graphs

Hi Stu.

I'm positive that the SharpPlot .Net assembly is consistently about an order of magnitude faster than RainPro.

Michael Baas has nicely pointed you at SharpRain - but the best way to use it it not just to run the rainpro script in "emulation mode", but convert them to pure-SharpPlot script, which will end up faster than you original rainpro script.

Cheers,

Nic.
Nicolas|Dyalog

Posts: 13
Joined: Wed Sep 10, 2008 9:39 am

Previous