Silverfrost Forums

Welcome to our forums

Native %pl

22 Nov 2017 12:28 #20841

Thanks Paul, No major show stoppers at present- you've seen a few of my work arounds on here. I understand/appreciate the issue with the personal users. I started dabbling with FTN95 there myself a few years ago. Ken

22 Nov 2017 9:49 #20845

You have to play with the input parameters to see the failure. All of this (relating to Dan's program and Ken's program) has now been fixed. For the next release of the ClearWin+ library. Dan's original code (with minor adjustments) will probably also work.

22 Nov 2017 10:22 #20846

Thanks Paul. And great when there is a lot of interested users, the pants on devilry responsible on all FTN95 bugs burn like a fire near mount Diablo.

23 Nov 2017 8:53 #20850

And one minor detail for quick fix for Paul: the minus sign in negative part of Y axis in my or Ken's examples is also placed way too far from the number labels. I had to photoshop spaces out before showing plots to others

23 Nov 2017 6:41 #20851

Dan

If you mean, for example, the distance between '-' and '3' in -3.0 then that depends only on the font that is used. There is no space character that separates the minus from the 3.0.

You could try using different fonts in your code to see if another font gives a better result.

23 Nov 2017 10:46 (Edited: 24 Nov 2017 9:45) #20852

All, Can you confirm Paul's words using his own last example on page 17? I see on X axis the minus sign on labels looks OK, on Y axis it is way off, specifically with large fonts, any type of fonts

24 Nov 2017 8:15 #20853

The second plot below shows Dan's extra space between minus sign and number.

http://tr5mx.co.uk/minus.jpg

24 Nov 2017 9:40 #20854

Thanks, Ken, this on the right is what i see. And sometimes this becomes a disaster like here

https://s25.postimg.org/pb3nk18b3/minus_Sign.png

24 Nov 2017 10:11 #20855

Disaster indeed Dan, that's another reason why on option to place the scales out side the frame would be beneficial. It would eliminate the scale text from x and y axis overlapping in cases like this:-

http://tr5mx.co.uk/overlap.jpg

24 Nov 2017 10:27 #20856

Ken

How did you get a y interval of 3 and just one significant figure in the y values?

24 Nov 2017 10:38 #20857

Surely the default should be that annotation is placed outside the box? Almost always it will interfere (or there is a risk that it will interfere) with data being plotted within the box. When I developed a graphic subsystem (from first principles) in the 1970s and 1980s my users would never have even considered having annotation along axes within the plotting area ! http://www.vmine.net/g-exec/doc/gplot.pdf

24 Nov 2017 11:08 #20858

Paul,

Using Dan's code:-

module surfplot2mod 
   use clrwin 
   integer (7) ihandleSP2 
   real*8 x(2),y(2), xEllipse, yEllipse 
   real*8 xAxisMin, xAxisMax, yAxisMin, yAxisMax 

CONTAINS 
   INTEGER FUNCTION plotSP() 
   x(1)=xAxisMin 
   x(2)=xAxisMax 
   y(1)=yAxisMin 
   y(2)=yAxisMax 
   call simpleplot_redraw@ 
   ixR=7; iYr=7 
   call get_plot_point@(1d0, 1d0, xEllipse, yEllipse) 
   call draw_filled_ellipse@ (nint(xEllipse), nint(yEllipse),ixR,iYr,rgb@(244,0,0) ) 
   call UPDATE_WINDOW@(ihandleSP2) 
   plotSP= 2 
   end function plotSP 
!...................................................... 
   INTEGER FUNCTION clearPL() 
     CALL simpleplot_redraw@() 
     clearPL = 2 
   END FUNCTION clearPL 
end module surfplot2mod 

!....................... 
Program SurfPlot2 
use surfplot2mod 
   xAxisMin =-4 
   xAxisMax = 5 
   yAxisMin =-4 
   yAxisMax = 5 
   x(1)=xAxisMin 
   x(2)=xAxisMax 
   y(1)=yAxisMin 
   y(2)=yAxisMax 
   i = winio@  ('%ww%nr&')                            
   call winop@ ('%pl[native,x_array,N_GRAPHS=1]') 
   call winop@ ('%pl[scale=linear]') 
   CALL winop@('%pl[tick_len=9]') 
   i = winio@  ('%sf%ts%bf&', 2d0)    
   call winop@ ('%pl[framed,axes_pen=3,width=3,x_axis='Length',y_axis='Width']') 
   i = winio@  ('%pv%pl&',800,600,2,x,y)! 
   i = winio@  ('%sf%ts%ff&', 1d0) 
   i = winio@  ('Set Xmin, Xmax%ta%df%9^rf%df%9^rf%ff&',1d-1,xAxisMin,'+', clearPL, plotSP,  1d0, xAxisMax,'+', clearPL, plotSP) 
   i = winio@  ('Set Ymin, Ymax%ta%df%9^rf%df%9^rf%ff&',1d-1,yAxisMin,'+', clearPL, plotSP,  1d0, yAxisMax,'+', clearPL, plotSP) 
   i = winio@  ('%cn%^bt[PLOT]%^bt[Clear]%ff&', '+', clearPL, plotSP, clearPL) 
   i = winio@  ('%ac[Esc]&', 'exit') 
   i = winio@  ('%hw%lw', ihandleSP2, lw_SP2)      
   jj = plotSP() 
   end 

Use the spinwheel to change ymax, and observe y axis change multiple times for values between 5 and 20.

Ken

24 Nov 2017 11:25 #20859

Paul, See also my 'Curly Wurly' code posted on Fri Sep 22, 2017 2:25 pm, I think this is the same basic problem. I've just rerun this with 8.2 and the strange effects on both axis scales are still apparent. Ken

24 Nov 2017 5:13 #20861

Ken and Dan

The rogue space has now been located. Thank you.

silicondale

You may be right be don't forget that this development as grown out of the existing SIMPLEPLOT %pl.

10 Dec 2017 12:16 #20960

Paul How things go with the optimal numbering? Remember, we discussed that for the LOG scale the numbering has to be in the same style, it has to be either so called 'engineering' (10, 100, 1000 or 1e2, 1e3, 1e4...) or 'scientific' (101, 102, 10^4). May be good idea would be to introduce the appropriate WINOP@ key. Here is one example what %pl is doing right now https://s25.postimg.org/cznb7n44v/Image109.png

10 Dec 2017 8:45 #20961

Dan

I have put the work on %pl to one side for now. Other things appear to be more urgent. He have already fixed some bugs and there is one more bug that I know about that is on the list. Hopefully I will be able to release a new set of DLLs before too long.

11 Dec 2017 10:50 #20970

Hi, John-S -- strange. That link is a simple graphical PDF made by scanning the original printed paper. Shouldn't cause problems even for the latest version of Adobe Reader.

15 Dec 2017 8:01 #20993

Looks like opposite to other native PL controls like

      call winop@('%pl[pen_style=0,pen_style=0,pen_style=0,pen_style=0]') 
      call winop@('%pl[symbol=0,symbol=11,symbol=8, symbol=7]') 

which set the parameters for each of 4 curves, the symbol_size=dval which specifies the size of symbols of curves (if there are few) not for each of them individually, am I right? In other words,

      CALL winop@('%pl[symbol_size=16.,symbol_size=22.,symbol_size=1.]') 

sets symbol_size =1 for all four curves. Also symbol_size=22 seems causing problems (crash)

15 Dec 2017 9:07 #20994

Dan,

symbol_size is only specified once and applies to all curves with symbols in the plot. Maximum permitted value is 16.

Ken

15 Dec 2017 10:19 #20995

Thanks Ken. Do you agree this is more a defect then a feature?

Please login to reply.