forums.silverfrost.com Forum Index forums.silverfrost.com
Welcome to the Silverfrost forums
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Dimension of %PL
Goto page Previous  1, 2, 3  Next
 
Post new topic   Reply to topic    forums.silverfrost.com Forum Index -> ClearWin+
View previous topic :: View next topic  
Author Message
DanRRight



Joined: 10 Mar 2008
Posts: 2434
Location: South Pole, Antarctica

PostPosted: Thu Jun 24, 2021 6:43 am    Post subject: Reply with quote

Bill, Do anyone else use your software? Ask them if it is fun for them after using your code to finish the job in thirdparty software. They will tell you that ideally your own software has to do all the job, and preferably in one click
Back to top
View user's profile Send private message
wahorger



Joined: 13 Oct 2014
Posts: 1003
Location: Morrison, CO, USA

PostPosted: Thu Jun 24, 2021 1:14 pm    Post subject: Reply with quote

Dan,

While I generally appreciate your comments, not this time. You made an incorrect assumption, and do not understand the nature of my SW product, the data the product ingests, nor the outputs the users receive and use in other applications.

I was not disparaging %pl or any other feature of FTN95/Clearwin. I just responded to your assumption that I should have used %pl in my commercial product. My comments on posts that are referencing %pl issues are very infrequent and my comments do not involve the internals/usage of %pl at all.

The "existing data sets" I referred to in my comment happen to be personal, namely water level data from our church's water well being monitored for degradation from a nearby shopping center. I also have personally used plotting software (third party) when analyzing attendance data for a group; the curve fit capability of the software was useful in determining the general trend.

Were I to be producing commercial software to do the same kinds of work, %pl would be a great tool to use. In my personal case, using a third party piece of software (Kaleidagraph) suits my personal needs perfectly.

Bill
Back to top
View user's profile Send private message Visit poster's website
DanRRight



Joined: 10 Mar 2008
Posts: 2434
Location: South Pole, Antarctica

PostPosted: Thu Jun 24, 2021 4:16 pm    Post subject: Reply with quote

I think my assumption was not as far off Smile I was not talking about your own preferences but preferences of your software potential users. Preferences of most of users of FTN95 i know: till they did not try, did not use seriously %PL they do not need it and do not like it. Human brain initially blocks everything new, and does not like extra work - this is a law of nature.

Users of our own software if they exist - this is different case. They need to learn how to use our codes and then learn how to use third-party software to finish the job essentially doing more job. Again human brain is rejecting extra work. If you combine two jobs in one and simplify to the limit users will be happier

Notice that for years i am making many simplest examples and pushing users to try? I am following the trick of sellers of white rats in pets markets. When people come into such market and see white rats their reaction is in 99.9% cases extremely negative. But if curiosity of some people stops them close to rat seller and they start asking questions ( a la if someone really buy these rats ?) the seller is doing the following trick: he drops the rat into their hands. Most people get shocked and then amazed how warm and cute these creatures actually are, that their prejudice was wrong, and many buy them. My goal is to have more users for developers to add new features faster as well as fix the bugs quicker

The benefits of %pl will notice only those who do a lot of visualization.


Last edited by DanRRight on Fri Jun 25, 2021 1:27 am; edited 2 times in total
Back to top
View user's profile Send private message
mecej4



Joined: 31 Oct 2006
Posts: 1558

PostPosted: Thu Jun 24, 2021 7:24 pm    Post subject: Reply with quote

Dan probably does not find a good market for those white rats at the South Pole, where he claims to be, which may be why he is seeking to unload them on us!

Last edited by mecej4 on Fri Jun 25, 2021 5:29 am; edited 1 time in total
Back to top
View user's profile Send private message
DanRRight



Joined: 10 Mar 2008
Posts: 2434
Location: South Pole, Antarctica

PostPosted: Fri Jun 25, 2021 1:17 am    Post subject: Reply with quote

Fortraneers are much tougher than that. The %PL is little unique treasure made for the Fortran people. But you can not unload even 100 dollar bills on some of them Smile
Back to top
View user's profile Send private message
PaulLaidler
Site Admin


Joined: 21 Feb 2005
Posts: 7086
Location: Salford, UK

PostPosted: Mon Jun 28, 2021 1:33 pm    Post subject: Reply with quote

Dan

The next release of the DLLs contains fixes for:

a) the multiple message box problem and

b) the range failure on the logarithmic x axis.

I have had a brief look at two other associated failures. In both cases my initial assessment is that the sample code pushes %pl beyond its current design limitations. When using logarithmic scales...

a) in the slider sample, maybe %pl does not dynamically adjust the minimum and maximum values and

b) CHANGE_PLOT_DBL@(0, "x_max", 0, 1.0d6) may not work for logarithmic scales.
Back to top
View user's profile Send private message AIM Address
DanRRight



Joined: 10 Mar 2008
Posts: 2434
Location: South Pole, Antarctica

PostPosted: Mon Jun 28, 2021 5:11 pm    Post subject: Reply with quote

Paul,
Thanks for updates and fixes. Please look closer at slider. Being dynamically updatable of all controls is #1 necessity of any GUI. The older %pl was buggy, fonts ugly, misaligned, nothing customizable, restrictive, most needed functionality missed and it was crashing like crazy, but it worked with slider if you were lucky being within its limits of stability Smile

It looks like with new %PL the limits ARE updatable dynamically, just the moment of update is chosen incorrectly. Hope this is an easy fix

With new %PL it is important to check that even if the initial data is everywhere well defined the %PL plots different data which in most option cases is smoothed. As a result the plotted data can cross any of 4 axes and even go negative where LOG is undefined. In last case crossing zero line will immediately give an internal crash and the safety mechanism will switch to linear scales. Curves crossing axis is hopefully the last major current problem. Happens both in linear and LOG cases. I need to make an example. May be other %PL users will publish some small demo example? I published that here before but can not find easily.
Back to top
View user's profile Send private message
DanRRight



Joined: 10 Mar 2008
Posts: 2434
Location: South Pole, Antarctica

PostPosted: Sun Jul 04, 2021 8:42 am    Post subject: Reply with quote

1) One more problem which could be already fixed as it looks related to previous ones:

If in the Chart Editor try to shift all tick numbers to the left so that Y=10^10, 10^11, 10^12 are not collide with the axis, the only what moves are numbers 10, 100 and 1000. The 10^4, ...., 10^12 do not move at all.

Code:
   module mod1
   use clrwin
   parameter (N=8)
   real*8 X(N), Y(N)
   Data X/1e2, 2e2, 1e3,  1e4, 2e4, 3e4,  4e4, 5e4/
   Data Y/1000, 6622, 8333, 11111, 171776, 1e9, 1.e12, 1.e11/
   save
   contains

   INTEGER FUNCTION redraw ()
!    CALL simpleplot_redraw@()
    CALL        plot_redraw@()
    redraw = 2
    end function redraw
   end module
!................................
   Program bug333
   use mod1

   i=winio@('%fn[Tahoma]%bf%ts&',2.d0)
   CALL winop@("%pl[gridlines]")
   call winop@("%pl[axes_pen=2,frame_pen=2,width=2,x_axis='X Axis Title',y_axis='Y Axis Title']")
   i=winio@('%ww%pv%pl[file=aaa.set,framed,link=lines,x_array,scale=log_log,N_GRAPHS=1,y_min=100.]%ff&', 925,700, n, X, Y)
   i=winio@('%sf%cn%^bt[Redraw]&', Redraw)
   i=winio@('%es')
   end


2) Minor improvement clearly needed: to offer an options of always using numbers in scientific format like 10^X with LOG scale. The mix of scientific 10^X and so called engineering format 1, 10, 100, 1000 never looks nice and i'd claim never used in any graphics software
Back to top
View user's profile Send private message
PaulLaidler
Site Admin


Joined: 21 Feb 2005
Posts: 7086
Location: Salford, UK

PostPosted: Mon Jul 05, 2021 6:53 am    Post subject: Reply with quote

Dan

I have noted your request.
Back to top
View user's profile Send private message AIM Address
PaulLaidler
Site Admin


Joined: 21 Feb 2005
Posts: 7086
Location: Salford, UK

PostPosted: Tue Jul 06, 2021 12:28 pm    Post subject: Reply with quote

Dan

Item (1) has been fixed but this will not be in time for the pending full release.

For item (2) the existing options [x_sigfigs=v] and [y_sigfigs=v] can be used to control the exponent form on the x and y axes respectively.
Back to top
View user's profile Send private message AIM Address
DanRRight



Joined: 10 Mar 2008
Posts: 2434
Location: South Pole, Antarctica

PostPosted: Thu Jul 08, 2021 12:59 pm    Post subject: Reply with quote

Thanks, Paul, in respond to your last post, fixing this annoying error with LOGs is good deal.

As to y_sigfigs i failed to suppress with it the appearance of 100, 1000 in the demo example above and get these numbers shown in the form of 10^2 and 10^3. Actually, i tried also slider example above with it with LOG and linear scales and have not succeeded to make it to have any difference.

By the way i do not see any acceptable LOG numbering form without "good number" like y_min=0.1 which i removed from slider demo in the example below to show how it disastrously looks after that. LOG always have to chose and mark only good numbers.
Code:
module mod1
use clrwin
integer, parameter:: N=30
Real*8 X(N),Y(N), Slider
contains
integer function cbSlider()
do i=1,N
  X(i) = i
  Y(i) = Slider*X(i)**3 * exp(-X(i)/3)
enddo
 call simpleplot_redraw@
!call       plot_redraw@
cbSlider=2
end function

integer function sniffRGB()
sniffRGB=2
end function


end module
!.........................................................
winapp
use mod1

call winop@('%pl[file=zPlotSettings.set]')
call winop@('%pl[y_sigfigs=3]')
i=winio@('%pv%^pl[x_axis="Angle",y_axis="Intensity",framed,full_mouse_input,&
&n_graphs=1, x_array,scale=log_linear,link=lines]%ff&',740,540,N,X,Y, sniffRGB)

i=winio@('%cn%50^sl&', Slider, 1d0, 100d0, cbSlider)

i=winio@('%lw%es',ilw)

i=cbSlider()
!call simpleplot_redraw@

end
Back to top
View user's profile Send private message
PaulLaidler
Site Admin


Joined: 21 Feb 2005
Posts: 7086
Location: Salford, UK

PostPosted: Thu Jul 08, 2021 2:07 pm    Post subject: Reply with quote

Dan

Try [y_sigfigs=2] and [x_sigfigs=2].
Back to top
View user's profile Send private message AIM Address
DanRRight



Joined: 10 Mar 2008
Posts: 2434
Location: South Pole, Antarctica

PostPosted: Thu Jul 08, 2021 9:23 pm    Post subject: Reply with quote

This is what the example above gives with y_sigfigs=2. What i do wrong as it is clearly a pure disaster? What these tic numbers tell anyone, why they were chosen?


The only acceptable numbering when every tic is clear is when we use y_min=0.1, ensuring exactly an order of magnitude change with "good" numbers, like here:


If you Google for example "logarithmic plot" and see all the Pictures, 99.9% of all LOG plots are like that, LOG basically exist mostly to see order of magnitude changes with clear good numbers like 1, 10, 100, 1000 or 10^0, 10^1, 10^2, 10^3 as tic marks. Even the numbers like 2 or 3 etc like here are not used as major tic marks because it is not clear what minor tic marks are (i used y_min=0.3):

I understand why mechanism took 0.7165 - this is because the first Y number was 0.7165. But the tic numbering still has to be different, the ideal mechanism is working either like here below (i photoshopped this) or user by himself gives exactly an order of magnitude change with y_min=v with v is exactly 10^x


I am fine with using y_min=v where v is exactly 10^X but there is small bug somewhere in %PL, the slider example on first page of this thread showed that. It has to add another order of magnitude when the peak value reach approximately 0.8 of Y axis height, but it is doing that a bit too late

/** Funny, my computer crashed while i was writing this Sad(( Devilry
Back to top
View user's profile Send private message
PaulLaidler
Site Admin


Joined: 21 Feb 2005
Posts: 7086
Location: Salford, UK

PostPosted: Mon Jul 12, 2021 7:42 am    Post subject: Reply with quote

Dan

I have noted your request.
Back to top
View user's profile Send private message AIM Address
PaulLaidler
Site Admin


Joined: 21 Feb 2005
Posts: 7086
Location: Salford, UK

PostPosted: Thu Jul 22, 2021 12:41 pm    Post subject: Reply with quote

Dan

You get a better display if you use [y_sigfigs=1].

For me the y_axis caption moves as the slider is moved. I plan to investigate this fault.

Here is my adaptation of your code...

Code:
module mod1
use clrwin
integer, parameter:: N=30
Real*8 X(N),Y(N), Slider
contains
integer function cbSlider()
 do i=1,N
  X(i) = i
  Y(i) = Slider*X(i)**3*exp(-X(i)/3d0)
 enddo
 call simpleplot_redraw@
 cbSlider=2
end function
end module
!.........................................................
winapp
program main
use mod1
Slider = 1d0
i=cbSlider()
i=winio@('%es&')
call winop@('%pl[x_axis="Angle"]')
call winop@('%pl[y_axis="Intensity"]')
call winop@('%pl[framed]')
call winop@('%pl[x_array]')
call winop@('%pl[scale=log_linear]')
call winop@('%pl[y_sigfigs=1]')
i=winio@('%pv%pl&',740,540,N,X,Y)
i=winio@('%ff%cn%50^sl',Slider,1d0,100d0,cbSlider)
end program main
Back to top
View user's profile Send private message AIM Address
Display posts from previous:   
Post new topic   Reply to topic    forums.silverfrost.com Forum Index -> ClearWin+ All times are GMT + 1 Hour
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
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