|
forums.silverfrost.com Welcome to the Silverfrost forums
|
View previous topic :: View next topic |
Author |
Message |
DanRRight
Joined: 10 Mar 2008 Posts: 2818 Location: South Pole, Antarctica
|
Posted: Fri Jun 28, 2019 4:11 pm Post subject: Options for lines smoothing in %pl |
|
|
Please remind me which option of native %pl removes smoothing mechanism in %pl and allows just simple straight line connection of points while plotting. Could not find it including searching by keyword 'smoothing' etc, all i find is related to the tricks to smooth line pixelation. Clearly i'm bad at English synonyms. And so many options.
Seems the default smoothing of lines (like besiers do) which is substituting linear interpolation with quadratic and third order curves in LOG scale causes visible artifacts on sharp plotting function changes. Probably would be good to add in the future some arbitrary order line smoothing in %pl |
|
Back to top |
|
|
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 7927 Location: Salford, UK
|
Posted: Fri Jun 28, 2019 5:31 pm Post subject: |
|
|
If I open ftn95.chm and search for "smoothing", it's the first topic that comes up.
[smoothing=dval] Specifies the smoothing mode,where dval is in the range 0 to 5 . (default 0, 4 and 5 provide for anti-aliasing).
These are the same values as for %gr and SET_SMOOTHING_MODE@ etc..
SmoothingModeDefault = 0 (no smoothing)
SmoothingModeHighSpeed = 1 (no smoothing)
SmoothingModeHighQuality = 2 (8x4 box filter)
SmoothingModeNone = 3 (no smoothing)
SmoothingModeAntiAlias8x4 = 4 (8x4 box filter)
SmoothingModeAntiAlias8x8 = 5 (8x8 box filter) |
|
Back to top |
|
|
DanRRight
Joined: 10 Mar 2008 Posts: 2818 Location: South Pole, Antarctica
|
Posted: Fri Jun 28, 2019 9:03 pm Post subject: |
|
|
Thanks. I tried it but it did not do anything why i decided to ask, may be i forgot something. I had to plot some data in log_linear y-x coordinates which looked hell peaky at the edges where change was large. The peaks exceeded in value everything in the plot. I tried that smoothing=0, and it did not do anything while in the past i remember it was having substantial effect. Changing to linear plot removed that peaky behavior with absolutely no peaks visible at all. Will try again, may be my peaky data is indeed that hell peaky but suspect here could be some smoothing problems while in LOG scale...
So is this feature currently off ? |
|
Back to top |
|
|
DanRRight
Joined: 10 Mar 2008 Posts: 2818 Location: South Pole, Antarctica
|
Posted: Sun Jun 30, 2019 6:34 am Post subject: |
|
|
I made small demo. Unless i do something wrong, here in comparison is what generates %pl with smoothing=0 and what produces other plotting software. Left picture is what %pl gives, while at the right is the picture created with Origin software.
In %PL the "smoothing=0" clearly does not work. Usually such artifacts like on left picture are obtained when the internal plotting smoothing mechanisms fail. Just look at the last 4 XY points around X=2. The maximum value there is 2.427E-02 while %pl plots it as if it's 1. I hope smoothing=0 will be easy to fix
Here is simplest plotting software and approximately the same data (call the file "data.dat") as in the pictures above, it was just cut to fit into the posting size
Code: | use clrwin
parameter (N=100)
real*8 X(N), Y(N)
y( : )=1.e-30
open(11, file='Data.dat')
do i=1,N
read(11,*,err=100,end=100) X(i),Y(i)
enddo
100 close(11)
print*,' number of records=', i-1
Nxy=i-1
i=winio@('%sf%ts%bf%es&', 2d0) ! text size, boldface, ESC
call winop@("%pl[axes_pen=3,width=3,x_axis='Radius (km)',y_axis='f(E) (arb.un.)']") ! axis width, line width, axis names
i=winio@('%ww%pv%pl[native,framed,x_array,scale=log_linear, y_min=1.e-3, y_max=1., smoothing=0, N_GRAPHS=1]', 768,640, Nxy, X, Y)
end |
Data.dat:
Code: | 5.577E-01 2.965E-02
5.777E-01 1.965E-02
5.957E-01 1.665E-01
6.057E-01 9.665E-02
6.457E-01 3.665E-02
6.607E-01 3.581E-02
6.761E-01 7.000E-02
6.918E-01 3.420E-02
7.079E-01 6.685E-02
7.244E-01 1.000E-30
7.413E-01 3.192E-02
7.586E-01 3.119E-02
7.762E-01 9.145E-02
7.943E-01 2.979E-02
8.128E-01 5.822E-02
8.318E-01 2.845E-02
8.511E-01 8.340E-02
8.710E-01 1.000E-30
8.913E-01 2.655E-02
9.120E-01 2.594E-02
9.333E-01 7.606E-02
9.550E-01 1.000E-30
9.772E-01 2.421E-02
1.000E+00 7.098E-02
1.023E+00 6.937E-02
1.047E+00 4.519E-02
1.072E+00 2.208E-02
1.096E+00 1.000E-30
1.122E+00 4.217E-02
1.148E+00 4.122E-02
1.175E+00 2.014E-02
1.202E+00 1.968E-02
1.230E+00 3.846E-02
1.259E+00 1.879E-02
1.288E+00 1.000E-30
1.318E+00 7.180E-02
1.349E+00 5.262E-02
1.380E+00 1.714E-02
1.413E+00 1.000E-30
1.445E+00 3.274E-02
1.479E+00 4.799E-02
1.514E+00 1.563E-02
1.549E+00 1.000E-30
1.585E+00 1.493E-02
1.622E+00 4.377E-02
1.660E+00 1.426E-02
1.698E+00 1.000E-30
1.738E+00 2.723E-02
1.778E+00 1.000E-30
1.820E+00 1.300E-02
1.862E+00 1.000E-30
1.905E+00 1.000E-30
1.950E+00 2.427E-02
1.995E+00 1.186E-02
2.042E+00 1.000E-30
4.042E+00 1.000E-30 |
Last edited by DanRRight on Sun Jun 30, 2019 10:13 am; edited 1 time in total |
|
Back to top |
|
|
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 7927 Location: Salford, UK
|
Posted: Sun Jun 30, 2019 10:10 am Post subject: |
|
|
"Smoothing" in this context determines what lines look like (anti-aliasing).
The way that data points are joined is determined by [link=lines] or "curves" or "none".
In this case it is also useful to use [symbol=val] to see the data points.
The best you can do with %pl for these data points is to use [link=lines] rather than "curves" which is the default. |
|
Back to top |
|
|
DanRRight
Joined: 10 Mar 2008 Posts: 2818 Location: South Pole, Antarctica
|
Posted: Sun Jun 30, 2019 10:34 am Post subject: |
|
|
Yes, this is how no line smoothing (simple straight line connection of points, or linear interpolation) was called: "link=lines" ! Unfortunately no word "smoothing" was used in the Help though this kind of line smoothing is more commonly used than antialiasing smoothing. Probably would be good to mention "link=lines" or "link=curves" as line smoothing (or curving smoothing, or better English synonyms) while antialiasing as jaggedness smoothing or else. Are these good names? Entire Clearwin becomes impossible to keep in the head, and computer search should be more helpful.
Meantime, the problem is solved, thanks, Paul. Out of two things associated with the line smoothing the less commonly used one - antialiasing - got way larger attention in the Help. Hopefully in the future the number of line smoothing (curving) options will grow and this will be easier to find in the Help (histogram, Spline, B-spline, Bezier, 2-point segment, 3-point segment, Step Horizontal, Step Vertical, Step Center). As a suggestion, if this will be also possible to change dynamically without changing source code that would be great.
As an another suggestion, may be good to the "link=lines" add also synonym "link=straight". And if add to %PL couple small cosmetic touches
- increase default minor tics length (and making them changeable like major tics)
- move Y axis name to safer distance from numbers (computer easily can center it on the left plot margin)
- increase distance between numbers and tics
the plot above will be almost perfect ! |
|
Back to top |
|
|
John-Silver
Joined: 30 Jul 2013 Posts: 1520 Location: Aerospace Valley
|
Posted: Wed Jul 03, 2019 12:18 am Post subject: |
|
|
Also could be added:
- to get the darn tic labels correctly centred on the tics (that really bugs me)
- make sure xponents don't encroach into the tics 'space'
- plot 10^0 and not 1 (see left hand graph above
As for the incorrect (?) interpolation to get 'smooth' curves - what algorithm is used Paul ?
Dan I think you're a victim of your peaky data as regards the strange plot.
You're not going to see any smoothness anyway !
Mind you, even if the interpolation is different (on left graph) the resulting lines shouldn't go off the graphic !!!
The scale should be adjusted to cater for not just raw data values but also interpolated values.
We've seen this in other plots. _________________ ''Computers (HAL and MARVIN excepted) are incredibly rigid. They question nothing. Especially input data.Human beings are incredibly trusting of computers and don't check input data. Together cocking up even the simplest calculation ... " |
|
Back to top |
|
|
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 7927 Location: Salford, UK
|
|
Back to top |
|
|
DanRRight
Joined: 10 Mar 2008 Posts: 2818 Location: South Pole, Antarctica
|
Posted: Wed Jul 03, 2019 1:30 pm Post subject: |
|
|
John,
My data was very rough, so smoothing mechanism failed. But almost all plotting software will fail. Origin also produced a hell different things and one of its smoothing option even freezed and crashed software. So with %pl i took linear interpolation for now and all look not bad, the only i may wish more is histogram-style plotting. But i will probably instead take bullet-style plotting and it may look even better. I showed that before in this newsgroup, i think the result looked stunning (without such niceties sometimes programming becomes a boring hell )
Smarter interpolation methods in the future may do like you suggest - they have to compare the result of smoothing with raw data with linear interpolation and adjust. Another cool smoothing program i saw when plotting different graphs interpolated not only the lines and jagg of lines but also transition from one line to another (a la "soap opera effect" all modern TVs are doing interpolating between frames ). No, i don't suggest SF to do that. |
|
Back to top |
|
|
John-Silver
Joined: 30 Jul 2013 Posts: 1520 Location: Aerospace Valley
|
Posted: Sat Jul 06, 2019 9:22 am Post subject: |
|
|
Dan, you wrote:
Quote: | My data was very rough, so smoothing mechanism failed |
... not at all 'failed' - if you look at the plots, all the 'peaks' have lines which are almost parallel. Interčpolating those will bring you (almost) to infinity, so little surprise the values are so high.
There is of courswe in reality a 'real' peak' but impossible to say where without more data.
This occurs a lot in structural random vibration plots (we always plot in straight lines but in critical cases need to estimate the probable real peak.
Paul, thanks very much for that link.
Very useful except od course Microsoft being Micro$oft the documentation is tortuouslėy inter-linked.
Their specific details of the method used hasn't jumped out at me yet but I'll keep on delving _________________ ''Computers (HAL and MARVIN excepted) are incredibly rigid. They question nothing. Especially input data.Human beings are incredibly trusting of computers and don't check input data. Together cocking up even the simplest calculation ... " |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|