Revert "allow iteration over array content"
xlib: calling "set termoption" from xlib can clobber X11_ipc
Could it be that you are seeing the "ruler" crosshairs that are turned on and off by the "r" key on your keyboard?
Dear Ethan, I understand issue #1. Sorry to take your time on that. I restarted gnuplot and I am not facing the same problem (Issue#2) Regarding issue#2, things I notice is that; Restart clears the problem. It reappears (Vertical and horizontal line) after some time. Usually after executing several command lines When I enter the replot command or the plot command, the lines go off and reappear (say in milliseconds) in the qt terminal. These lines move position when zoomed in or out with the plotted...
Your issue #1 is trivial. The data in files Eh=1 and Eh=10 are essentially identical, so the green line is drawn on top of the blue line. An easy way to check this is to toggle the individual plot on/off. Click with the mouse on the title of that plot in the key. When you click on the Eh=10 title the corresponding (green) plot will be hidden, allowing you to see the blue plot that it was obscuring. I cannot reproduce your Issue #2. If you toggle off each of the plots one by one, does the line remain...
Dear Ethan, I'm sorry that I didn't save the script for the plot I generated. But I have attached another image and the command lines for the same, which has similar issues. Issue #1: One file is not being displayed. But no error msg. Please look at image1.png and script1.txt in the attachment. The issue I faced is that the file "YDisp-T_Re200K1Eh1.csv" (which has to be "blue") is not being displayed. But the command line is executed, also the blue legend gets displayed. Please look into the first...
double-free on fputc
Clean reproducer attached. Fixed in 6.1
Please show the complete set of commands fed to gnuplot to produce this plot.
Same with wxt terminal
A black horizontal and vertical line is displayed in the output terminal
mingw/woa: fix installation of demo files
Colons need to be entered as tags for the OS/2 help
Test for ioctl.h header is not sufficient
os2: enforce C99 with old compilers and extend inttypes
os2: sync with configure.hin
djgpp: fix demo binary files and change defaults
djgpp: sync with configure.hin
revised color assignment code for "splot with polygons"
bump PATCHLEVEL to 4 (version 6.0.4)
revised color assignment code for "splot with polygons"
gd: allow to build with a gdlib older than 2.1.0
last minute changes to the documetation for 6.0.4
Oh. OK. I understand what it's doing now, but I guess it just feels like a very strange thing to be doing. The output window is xy. The autoscaler untimately decides on xrange and yrange. So the xy data is what it should be using to make that decision. It sounds like it makes sense to you, so then yeah, there's no bug. Thanks for explaining.
more fillcolor options for splot with polygons
Oops, sorry. I'll re-open the issue. But I am still failing to see a bug here. Looking at the generated plot a bit more... is it trying to fit the r axis into the plot? it sees that the maximum r has a certain value, and it then tries to make sure a full circle of radius r can be plotted? Yes. That. Even if there is no data there for all theta? If that's the case, I would consider this a bug: the autoscaler should only be concerned with the data being plotted. It scales to accommodate the data being...
Incorrect autoscale regression in polar plots
misplaced tics on lin scale
Fixed in 6.1; queued for 6.0.5
Hold on! I've been busy, and haven't had time to reply. I've read your comments multiple times, and I'm sure it makes sense to you, but it doesn't make sense to me. First, the regression. I check out the "5.4" git tag, and I see the old behavior. The breaking commit is linked above. I cannot say if it does the right thing. Next, the intent was not to limit the input (as rrange would do) but to limit the output (as yrange should do). The autoscaling logic, as I always understood it, should select...
do not draw out-of-range yaxis tickmarks
plotting in table mode ignores x-range
In 6.0.3, some of the problems with log scale axes remain
Incorrect autoscale regression in polar plots
declare TBOOLEAN reset_since_last_plot in gadgets.h rather than mouse.h
Unclear how to specify simple Return types of plugin function
I will try to describe this more clearly. The value returned by the intializer is an opaque token. Gnuplot makes no assumptions about whether it is a pointer or an index or any particular data type. The token is stored as part of the function definition in gnuplot but is not visible to the user. Whenever gnuplot calls the imported function itself, or eventually the destructor function for it if there is one, it passes the token back in as an extra parameter. Again gnuplot makes no assumptions about...
Hi Ethan, thanks for the detailed reply! I still intend to write out proper documentation but for now I hope the code itself and the accompanying comments will suffice. If you don't mind, I can supply this documentation , or at least the rough draft version of it. Because as someone who is just starting with this feature, my perspective may be more in line with that of other users who are in the same situation. Another question regarding the shared object pointer. As far as I understand it, Gnuplot...
Please look at your input script again. You have told the program to use polar coordinates. The input data values run from zero to 2π (1st column of data) which is perfectly normal for polar coordinates. The input data in the second column, the polar radius r, runs from -635.987 to 212. If you want to limit the data on input you can set the limit on. So set rrange rather than set yrange. The yrange limits what is drawn on the plot, not what is read in from the input file. I see identical results...
Please look at your input script again. You have told the program to use polar coordinates. The input data values run from zero to 2π (1st column of data) which is perfectly normal for polar coordinates. The input data in the second column, the polar radius r, runs from -635.987 to 212. If you want to limit the data on input you can set the limit on. So set rrange rather than set yrange. The yrange limits what is drawn on the plot, not what is read in from the input file. I see identical results...
Hello. This plot is autoscaled on the x (where the data appears in a very small range), but the yrange is locked to [-5:5]. The data outside this yrange shouldn't affect this, and it didn't previously. I just did a bisection. 5.4 worked properly, 5.5 does not. The specific commit that broke it is: https://github.com/gnuplot/gnuplot/commit/6d3c518a5bdd0da34d7e7ba40e88d7e7576c41b2
Multiplot flicker on redraw
Update: Fixed for wxt terminal. Fixed for x11 in the special case that the multiplot is defined first and then executed by "replot" or "remultiplot" in a loop. This should work for qt also but it doesn't seem to. I don't know why. t = 0 set multiplot layout 3,3 plot sin(x + t) with lines t "" plot cos(x + t) with lines t "" ...etc... unset multiplot do for [t=0:50] { replot pause 1 }
I should have added links to the relevant new code and sample plugins: Revised destructor API https://sourceforge.net/p/gnuplot/gnuplot-main/ci/850d0b6fe0940ec3b515a048735b96d66f4b34f0/ New plugin example code https://sourceforge.net/p/gnuplot/gnuplot-main/ci/9cb52321e3a0f2d72652e1d8db1e3953db79a7a0/ https://sourceforge.net/p/gnuplot/gnuplot-main/ci/master/tree/demo/plugin/plugin2.dem
Your questions got me to look more deeply into the state of the plugin code and then try to put together a demo that illustrates the use of the initializer / imported function / destructor design. Along the way I discovered that the destructor end of it had never been completely implemented, so I had to tackle that first. I still intend to write out proper documentation but for now I hope the code itself and the accompanying comments will suffice. The new coding example starts at line 93 of the file...
The range of values in the 2nd column of the data is [-635.987: 212.005] . Since it is read in polar mode, this is r rather than y. After transformation into Cartesian x/y values this gives a range [0.00000:212.005] which autoscaling extends to the next rtick value. This translates to a range [-250:250] on both x and y, which is what you would see in the plot if both x and y were both autoscaled. But the script expicitly sets yrange [-5:5] and set size ratio -1 so most of the y values are out of...
Incorrect autoscale regression in polar plots
consistent reset toggle status (visible/hidden) at the start of splot or replot
wxt, x11: reduce flicker during multiplot or animation
./configure --disable-history-file needs a dummy function gp_read_history
850d0b breaks the build with --disable-plugins
good catch. Thanks
The test for a plugin destructor must depend on HAVE_EXTERNAL_FUNCTIONS
The test for a plugin destructor must depend on HAVE_EXTERNAL_FUNCTIONS
850d0b breaks the build with --disable-plugins
fix configure script if qt is requested but neither qt6 nor qt5 is found
fix configure script if qt is requested but neither qt6 nor qt5 is found
fix configure script if qt is requested but neither qt6 nor qt is found
woa: missing Makefile changes for help files
update docs NEWS RELEASE_NOTES
Revise the definition and handling of a plugin's destructor function
do not break contour lines into 100-segment fragments
provide an example plugin that uses initializer/destructor functions
Revise the definition and handling of a plugin's destructor function
clone_string_value() should be able to handle a NULL string
consolidate code that formats a complex number
Hi Ethan, thanks for your help so far! But this answer raises new questions. You are mentioning an init and an destructor function. I assume this are /* prototype for a plugin function */ DLLEXPORT void *gnuplot_init(struct value(*)(int, struct value *, void *)); DLLEXPORT void gnuplot_fini(void *); (From gnuplot_plugin.h ) According to that a plugin has to define a function named gnuplot_init which got an function pointer to an plugin function. I assume if the plugin provides more than one "working"...
Gnuplot has no type "double" or "float". The variable types are enum DATA_TYPES { INTGR=1, CMPLX, STRING, DATABLOCK, FUNCTIONBLOCK, ARRAY, ...} Real numbers are stored as type CMPLX with the imaginary compent equal to zero. You are quite right that the plugin mechanism deserves a full writeup somewhere. I'll try to give a brief description here. The additional parameter (void *)p exists so that the plugin can create and manipulate a persistent data structure or other object that is otherwise not...
mingw/woa: HTML files for Japanese are all created with a shift-jis tag
mingw/woa: build helpfiles out of tree
mingw: fix for current MSYS2
mingw/woa: sync with config.h created by configure
mingw/woa: HTML files for Japanese are all created with a shift-jis tag
mingw/woa: build helpfiles out of tree
mingw/woa: sync with config.h created by configure
reimplement internal function f_power() using c99 cpow()
use c99 function hypot() in asin acos asinh acosh
reimplement internal function magnitude() as c99 standard hypot()
slightly better precision for acosh(x) if x is real and x < -1
slightly better precision for acosh(x) if x is real and x < -1
Sorry, my fault. I should have bracketed my remarks about “all libraries” by <pendantic>/</pendantic>! As a developer of graphic interfaces to math facilities, I’m well aware of the inexorable constraints the maintainer is confined to. Obviously, I did not talk about libraries “easy to be used from gnuplot”. Still, I must have stated this explicitly! Thanks for the fixes! P.S. PARI is the C library — and an interpreted language, while gp is the CLI/graphing calculator with bridges to (95% of) capabilities...
I think we may be talking past each other, probably because we're coming from quite different fields. You're obviously in math and have a different notion of "standard libraries and languages". What I meant was that the native syntax of C/Fortran/R/whatever only provides variables holding IEEE 754 compatible 64- or 128- bit floating point representations. The corresponding standards like c17 only promise support for the respective basic math functions, asin() or asinl() in this case. Gnuplot is written...
If you need 600 decimal places of precision then you simply cannot use standard math operations and libraries in any language that I know of. I suspect this is just a glitch in your memory. With any contemporary library “focussed for math”, anything ≪10⁵–10⁶ decimal places should not be a problem. ¹⁾ (And in many cases it is needed, since the standard formulas often include major cancellations — with the associated precision loss. Like the answer being ∼1, but to get it you need to subtract two 600-digits...
If you need 600 decimal places of precision then you simply cannot use standard math operations and libraries in any language that I know of. I suspect this is just a glitch in your memory. With any contemporary library “focussed for math”, anything ≪10⁵–10⁶ decimal places should not be a problem. (And in many cases it is needed, since the standard formulas often include major cancellations — with the associated precision loss. Like the answer being ∼1, but to get it you need to subtract two 600-digits...