Control horizontal separation of outliers in boxplots
Queued for 6.0.2 "set jitter" applies to boxplot outliers
Ticket moved from /p/gnuplot/bugs/2730/ Can't be converted: _milestone: _priority:
I understand the reason for your request, and I think it's reasonable. But I do want to point out that basing it on "smooth unique" may not be quite what you want, since that option sorts the points on x as a first step and does not guarantee that the "first" or "last" property is retained after sorting. That depends on what algorithm the C library qsort() routine on your system uses. Some systems provide a stable sort algorithm (preserves initial order of equal key values); others do not. The development...
v6.0.1: show key does not show all of the key title attributes
gnuplot-6.0.1: missing dnl comment marker in configure.ac
Thanks
gnuplot-6.0.1 "make check" fails in watchpoints.dem
Applied, thanks. Although only the final plot needs to be skipped; the preceding plots do not depend on any special functions.
Tics change to "nomirror" when setting tics scale
There is a messy history behind this one. I think there will likely be some unhappy people or old scripts whichever way we take this. But I agree with you that setting the scale should not alter the setting for mirroring. So I have made that change even though it will affect some scripts, including a couple in the project unit tests and demo collection. In retrospect I wish this had been done prior to the 6.0 release. Part of the issue here is that "set tics" with no other keywords on the command...
Windows: Running script with -p or via file explorer the cursor stops showing x coords
coordinate display in inactive terminal breaks in logscale mode
The inactive window mousing code was unfortunately overlooked when logscale axes were reworked for version 5, so it has been broken for a long time. Fixed now for wxt, qt, and x11. The more general nonlinear axis case, or linked axes that use a forward/reverse linear mapping, cannot be handled by inactive windows as the program is currently constructed. Those coordinate transforms require evaluation of functions attached to the axis structure, but the functions are defined and evaluated only in the...
wxt window crashes app when resized by dragging
I don't know whether this is still an issue in 6.0 (let me know if it is), but I think that ripping out all the multithread code for wxt in 6.1 should have removed all problems that arose from back locking or competing threads.
configure uses /usr/local/share/ regardless of --prefix
plot for [i=1;*] terminates early despite `set clip two`
colors ignored: plot ... with circles lc variable with SVG output
Is the try0.pdf file supposed to show this problem? I don't see anything in it that looks like a gray grid when viewed here in okular. Could this be a problem in the viewer rather than in the gnuplot output? That has been a recurring problem and a known bug in many pdf viewers. If so then you may be able to work around the problem by telling gnuplot set pm3d border retrace. That option was added specifically to deal with rendering programs that show imperfect alignment between adjacent rectangles...
The terminal type is not relevant here. The issue is the deprecation of allowing a bare numeric value to be interpreted as a line color. Short answer: To make your existing script work in gnuplot version 5, add the command set style increment userstyles To make it work in version 6 would require something else (see below) Long answer: Gnuplot places a strong emphasis on preserving backward compatibility. But sometimes the addition of new features and code paths makes it impractical to preserve old...
OK. Here is a more polished version of the same script using a nonlinear x axis rather than y axis. # # Use nonlinear mapping to plot # x > C : log(x) # x < -C : -log(-x) # -C < x < C : NaN # C = 1.9 ε = 1.e-7 f(x) = (x>C) ? log(x) : (x<-C) ? -log(-x) : NaN g(x) = x > log(C) ? exp(x) : x < -log(C) ? -exp(-x) : NaN set nonlinear x via f(x) inv g(x) set obj 1 rectangle from -(C+ε), graph 0 to (C+ε), graph 1 set obj 1 fs solid noborder fc "gray25" back set sample 1000 set key left Left reverse set tics...
OK. Here is a more polished version of the same script using a nonlinear x axis rather than y axis. # # Use nonlinear mapping to plot # x > C : log(x) # x < -C : -log(-x) # -C < x < C : NaN # C = 1.9 ε = 1.e-7 f(x) = (x>C) ? log(x) : (x<-C) ? -log(-x) : NaN g(x) = x > log(C) ? exp(x) : x < -log(C) ? -exp(-x) : NaN set nonlinear x via f(x) inv g(x) set obj 1 rectangle from -(C+ε), graph 0 to (C+ε), graph 1 set obj 1 fs solid noborder fc "gray25" back set sample 1000 set key left Left reverse set tics...
OK. Here is a more polished version of the same script using a nonlinear x axis rather than y axis. # # Use nonlinear mapping to plot # x > C : log(x) # x < -C : -log(-x) # -C < x < C : NaN # C = 1.9 ε = 1.e-7 f(x) = (x>C) ? log(x) : (x<-C) ? -log(-x) : NaN g(x) = x > log(C) ? exp(x) : x < -log(C) ? -exp(-x) : NaN set nonlinear x via f(x) inv g(x) set obj 1 rectangle from -(C+ε), graph 0 to (C+ε), graph 1 set obj 1 fs solid noborder fc "gray25" back set sample 1000 set key left Left reverse set tics...
OK. Here is a more polished version of the same script using a nonlinear x axis rather than y axis. # # Use nonlinear mapping to plot # x > C : log(x) # x < -C : -log(-x) # -C < x < C : NaN # C = 1.9 f(x) = (x>C) ? log(x) : (x<-C) ? -log(-x) : NaN g(x) = x > log(C) ? exp(x) : x < -log(C) ? -exp(-x) : NaN set nonlinear x via f(x) inv g(x) set obj 1 rectangle from graph 0, first -C to graph 1, first C set obj 1 fs solid noborder fc "gray25" back set sample 1000 set key left Left reverse set tics nomirror...
I am not sure I understand correctly. A sketched example might help. Would this be different from what you do already by defining a nonlinear axis? # # Use nonlinear mapping to plot # y > C : log(y) # y < -C : -log(-y) # -C < y < C : NaN # C = 1.0 f(y) = (y>C) ? log(y) : (y<-C) ? -log(-y) : 0 g(y) = y > log(C) ? exp(y) : y < -log(C) ? exp(-y) : NaN g(y) = y > log(C) ? exp(y) : NaN set nonlinear y via f(y) inv g(y) set obj 1 rectangle from -C, graph 0 to C, graph 1 fs solid noborder fc "gray25" back...
See edited answer. ibeta() is the normalized incomplete beta function.
autoscale xrange with bounds in logscale
(Minor) Ticks on the log axes [Still completely broken in 6.0]
Incomplete beta function at x=1 returns 1.0 always
[Earlier answer deleted. Sorry for any confusion if you read that first] ibeta(a,b,x) is the normalized incomplete beta function β(a,b). The normalization means that it runs from 0 to 1. normalized ibeta(a,b,x) = Γ(a+b)/(Γ(a)Γ(b) * [unnormalized ibeta(a,b,x)] The documentation and demo may help: https://gnuplot.sourceforge.net/demo_6.0/ibeta.html
[Earlier answer deleted. Sorry for any confusion if you read that first] ibeta(a,b,x) is the normalized incomplete beta function β(a,b). The normalization means that it runs from 0 to 1. normalized ibeta(a,b,x) = Γ(a+b)/(Γ(a)Γ(b) * [unnormalized ibeta(a,b,x)]
Incomplete beta function at x=1 returns 1.0 always
Excellent question. Gnuplot version 6 uses the incbet() function from the Cephes library version 2.8 source file incbet.c. The Cephes file is included essentially verbatim in gnuplot's sourcefile specfun.c. In the source code from Cephes there is a specific test for the endpoint conditions: if ( (xx <= 0.0) || ( xx >= 1.0) ) { if ( xx == 0.0 ) return 0.0; if ( xx == 1.0 ) return 1.0; return -1.0; } But that contradicts the internal documentation that claims * The domain of definition is 0 <= x <=...
the ticks should be put on the y-axis at exactly the same coordinates as on the x-axis You can get that by saying set autoscale noextend; set logscale y; set ytics 0.1 nolog plot [1.1:1.9] x I agree that looks nice. As it stands you have to specify a tick internal in this case, but I think I know how to fix that. Can you test the attached patch? The question then becomes "how should the program know when to do this by default?". You've obviously put some thought into this. Do you have a suggestion...
Aha. That may explain it. With the caveat that I have never worked on WIndows and have only a vague idea how its file-handling works, here is what I think is happening and possible work-arounds. Several gnuplot terminals, including qt, start up a separate process to draw a plot window and respond to mousing events in that window. If the set term qt command that caused the separate process to be started is inside a script, then that script is the input stream for the new process. In principle the...
Is the set term qt command inside the script, or do you first set the terminal and then load the script?
error in gnuplot help regarding cntrparam levels incremental
I can't find this text or example anywhere in the current documentation files. What version of gnuplot, or more specifically which version of the manual, did you find it in?
The thing that perplexes me is that the same file /usr/local/share/gnuplot/6.0/js/gnuplot_svg.js is used both for the standalone output and for the accesss-via-url output. The difference is that the former copies the file line by line into the output file, while the latter inserts a single line containing xlink:href=\"%sgnuplot_svg.js\" where %sis expanded either to a directory on the local machine or a URL for remote access based on the set term svg ... jsdir <URL> keyword. I don't understand why...
Embedded javascript in svg output causes XML Parsing Error
Thanks. So apparently the browsers treat the file differently when it's embedded locally as compared to retrieved via a URL. Different parser? Extra syntax sanitation step during download? I can't say I understand what the reason is, but yes I can now reproduce both the problem and your fix. OK. I'll add the escape characters to the replace command in the gnuplot source distribution. Normally I'd try to correct it on the web site also but in this case it seems that the problem doesn't trigger when...
Control horizontal separation of outliers in boxplots
I can't reproduce this problem in either Firefox or Chrome (build 125.0.6422.60). Do you see this for all gnuplot svg files? For the scripts on the demo pages on the web site? https://gnuplot.sourceforge.net/demo_svg_6.0/
noautititle, notitle and empty title
`set clip two` not respected on Linux QT terminal
Addressed but not extensively tested in 6.1; not yet in 6.0
multiplot commands in $GPVAL_LAST_MULTIPLOT incorrect inside a bracketed clause
multiplot commands in $GPVAL_LAST_MULTIPLOT incorrect inside a bracketed clause
fatal error: 'QtCore' file not found
multiplot commands in $GPVAL_LAST_MULTIPLOT incorrect inside a bracketed clause
Please report your OS and which version of gnuplot you are building. The tracker items belong (all resolved so far as I know) may be relevant: https://sourceforge.net/p/gnuplot/bugs/2591/ https://sourceforge.net/p/gnuplot/bugs/2705/ https://sourceforge.net/p/gnuplot/support-requests/293/ https://sourceforge.net/p/gnuplot/support-requests/294/
Thank you for the bug report and the reproducer. Weirdly, this only happens with a wildcard in the iterator; when the plot command is replaced with plot for [i=2:3] DATAF using 1:i with lines title columnheader(i) the clipping works as expected. Aha. Got it. The implementation of for [i=1:*] is basically iterate until there are no points to plot. Normally this happens when there are no points at all (end of file, last column + one, etc). But it this case when i hits 3 all the points are out of range...
Thank you for the bug report and the reproducer. Weirdly, this only happens with a wildcard in the iterator; when the plot command is replaced with plot for [i=2:3] DATAF using 1:i with lines title columnheader(i) the clipping works as expected.
Thanks for testing. I found the bug running a Windows emulator under linux. It is good to hear that the bug does not happen on native Windows. Even if it is problem with the emulator rather than an actual error in gnuplot it might be possible to figure out and modify whatever internal draw commands are being incorrectly rendered.
windows terminal: bad clipping of pm3d border lines
windows terminal: bad clipping of pm3d border lines
For what it's worth - gnuplot definitely does issue fclose() on the file descriptor for the loaded script file. I do not know why that isn't sufficient for Windows,
Interactive rotation of 3D plots in a multiplot context and inline data broke in 6.0
Latest changes cause compiling errors
sixelgd output unexpectedly starts with “ESC[H”, causing image to be rendered at top left of screen
The sixel and kitty terminals take a terminal option that is either scroll or anchor, where anchor is the default. This is what you are seeing. Using set term sixelgd scroll if you prefer the graphics to immediate follow the command that produced them and scroll together. The anchor mode allows you to do in-place animation, and perhaps more commonly it allows you to "mouse" 3D plots by using the arrow keys.
sixelgd output unexpectedly starts with “ESC[H”, causing image to be rendered at top left of screen
The sixel and kitty terminals take a terminal option that is either scroll or anchor, where anchor is the default. This is what you are seeing. Using set term sixelgd scroll if you prefer the graphics to immediate follow the command that produced them and scroll together. The anchor mode allows you to do in-place animation, and perhaps more commonly it allows you to "mouse" 3D plots by using the arrow keys.
The only way I can think to explain that is that you are missing the gd library (libgd). Is that true? If so then I would expect that you are missing functionality from your "working" executable also. Commit [f3a151] attempts to provide a fallback so that the functionality can be provided by a different library. Questions: Does your functioning executable provide the libgd terminals (e.g. does "set term jpeg' work?) Does "show version long" in your functioning executable contain the string +GD_PNG?...
hidden3d disables toggling in interactive terminals
You are right. I see it now. Thank you for pointing out my mistake. I mis-interpreted the patch as changing the default for the mark itself, not for the object.
Re: 205_modify_default_fillstyle_of_object_mark.patch Are you sure? This change would mean that you cannot modify the fillstyle of an object that contains a mark. I think the current initialization to FS_DEFAULT is correct. That tells it to inherit the fillstyle of the object that contains it.
Re: 205_modify_default_fillstyle_of_object_mark.patch Are you sure? This change would mean that you cannot modify the fillstyle of an object that contains a mark. I think the current initialization to FS_DEFAULT is correct. That tells it to inherit the fillstyle of the object that contains it.
Ticket moved from /p/gnuplot/bugs/2707/ Can't be converted: _milestone: _priority:
Ticket moved from /p/gnuplot/bugs/2708/ Can't be converted: _milestone: _priority:
gnuplot 6.0.0 fails to build with Qt6 on Fedora
requested fix merged into 6.0 and 6.1
Gnuplot 5.2 is rather old by now, so debugging is rather pointless unless the problem has persisted through to versions 5.4 and current 6.0 However I think it is more likely that the error is in the font handling routines for whatever output graphics libaray you are using. What gnuplot terminal are you using? Have you checked whether other terminals show the same error? I know there was a problem like this that affected gdlib version 2.3.3 if the wrong configuration options were chosen at the time...
set palette maxcolor in lua latex terminal has no effect
Gnuplot 5.2 is rather old by now, so debugging is rather pointless unless the problem has persisted through to versions 5.4 and current 6.0 However I think it is more likely that the error is in the font handling routines for whatever output graphics libaray you are using. What gnuplot terminal are you using? Have you checked whether other terminals show the same error? I know there was a problem like this that affected gdlib version 2.3.3 if the wrong configuration options were chosen at the time...
Gnuplot 5.2 is rather old by now, so debugging is rather pointless unless the problem has persisted through to versions 5.4 and current 6.0 However I think it is more likely that the error is in the font handling routines for whatever output graphics libaray you are using. What gnuplot terminal are you using? Have you checked whether other terminals show the same error? I know there was a problem exactly like this that affected gdlib version 2.3.3 if the wrong configuration options were chosen at...
It appears from the log you attach that your /usr/bin/gcc is really pointing to a clang compiler, not to gcc13. configure:4119: checking for gcc configure:4140: found /usr/bin/gcc configure:4151: result: gcc configure:4504: checking for C compiler version configure:4513: gcc --version >&5 Apple clang version 15.0.0 (clang-1500.3.9.4) I don't know whether that is normal on a Mac or not, but perhaps it would solve your problem to predefine both CC and CXX environmental variables to point to the actual...
Status of "marks" code in 6.1 You wrote "I think it would be better to incorporate the marks style into the release version after careful consideration". Everything in 6.1 can be considered as experimental, that is the point of having a development version that is separate from the stable version. The experimental features may change during development before being included in a release version, or reverted if they don't work out. I suppose in this era of git repositories it would be possible to...
outdated info in readme_windows.txt
Re: wxt multi-threading To the best of my knowledge the problems with wxt have been caused by the wxgtk library. wx uses a different support library (not gtk) under Windows.
Thank yοu. The edited files will be included with 6.0.1
I don't know if there is a consistent concept of "subpath" shared by the various support libraries. I am pretty sure there is no such thing in PostScript. gdlib doesn't really have paths at all, at least with regard to filled area. I get no hits on "subpath" from searching the cairographics documetation (which doesn't mean there is no such thing, but I didn't find it). I tried to follow the definitions in the SVG documentation you linked to, and ended up with the following hand-modified svg file...
Could you give me an example of what you mean by a "transparent hole" in a set of polygons? I don't understand how that relates to colors. How is it different from an empty (no fill) facet in a larger surface? For example, it doesn't seem possible to drill a hole in a polygon with another polygon in a simple way like fill-rule in SVG. Ah. I understand. You want control of the "winding rule" property. That is a good idea! It needs to be implemented at the level of the terminal settings, after which...
Add Qt6Widgets to PKG_CHECK_MODULES
The gnuplot configuration check is PKG_CHECK_MODULES_NOFAIL(QT, [Qt6Core Qt6Gui Qt6Network Qt6Svg Qt6PrintSupport Qt6Core5Compat]) On my machines (Mageia 8/9/10) the Qt6Widgets module is a requirement for the QtPrintSupport package and is pulled in automatically by that. So checking for QtPrintSupport implicitly also checks for Qt6Widgets. Name: Qt6 PrintSupport Description: Qt PrintSupport module Version: 6.4.1 Libs: -L${libdir} -lQt6PrintSupport Cflags: -I${includedir}/QtPrintSupport -I${includedir}...
webp_figures.gnu is missing from tar ball
The gnuplot configuration check is PKG_CHECK_MODULES_NOFAIL(QT, [Qt6Core Qt6Gui Qt6Network Qt6Svg Qt6PrintSupport Qt6Core5Compat]) On my machines (Mageia 8/9/10) the Qt6Widgets module is a requirement for the QtPrinterSupport package and is pulled in automatically by that. So checking for QtPrinterSupport implicitly also checks for Qt6Widgets. Name: Qt6 PrintSupport Description: Qt PrintSupport module Version: 6.4.1 Libs: -L${libdir} -lQt6PrintSupport Cflags: -I${includedir}/QtPrintSupport -I${includedir}...
Here is a proof-of-principle patchset that adds a "title" attribute to the "set mark" command. The program doesn't do anything with the title other than keep it attached to the mark and report it as part of a "show" or "save" command. Example: set angles degree set mark 8 [0:360:10] "+" using (cos($1)):(0.8*(sqrt(abs(cos($1)))+sin($1))):(FILL) \ fc "dark-red" title "red heart" unset angle show mark 8 marktype 8 title "red heart" polygon vertices 37 fillcolor rgb "red" fillstyle default
I had assumed that only the final code would be committed to the main branch once the discussion and specification work here had settled down. That was what I planned, but I became concerned that my revisions ( 548685a5e and 059c46d5d) touched so many lines of code that any further patches from your side would not apply cleanly. Maybe I should have created a new branch on SourceForge instead? But I have not yet figured out how to share access to those or to cherry-pick from them. I am still a newcomer...
Heh. You are working too fast for me to keep up. I was just about to commit a consolidated version of your work through patchset 018 and a round of adjustments I made in response but was still in the process of testing thoroughly. I will see if 021-025 are useful on top of what I have here at the moment; otherwise I suggest you wait for me to commit what I have to the master branch and we can both work off that starting tomorrow. Here's a summary of what I did and where it stands. See also the commit...
Comments/problems 29 April missing "break" statement after set.c:371 set_mark(); - example of failure: set mark 1 empty; show mark 1 Not documented: set mark N append <already-defined tag="" number=""> - copies an existing tag - what is the intended use for this?</already-defined> Mark symbols are not drawn in the key if the key is outside the plot - it looks like the mark is clipped even though do_sample_key_mark() passes clip=FALSE to do_mark() comment in plot_marks "stored in yhigh" should be...
After applying these patches gnuplot> load 'Fig01_02_iris_marks.gp' gnuplot> load 'Fig03_04_linesmarks.gp' Thread 1 "gnuplot" received signal SIGSEGV, Segmentation fault. set_mark () at set.c:3316 3316 prev->next = mark; (gdb) list 3311 if (action == MARK_ACTION_APPEND || action == MARK_ACTION_COPY) { 3312 mark_append(this, mark); /* append to existing mark */ 3313 mark_free(mark); 3314 } else { 3315 prev = get_previous_mark(first_mark, this); 3316 prev->next = mark; 3317 mark->next = this->next;...
Thanks. It will take me some time to look through your revised code. As to how to save the mark definitions, yeah - good question. I'm not sure what is best. I can think of several options 1 - Don't save them at all 2 - Add a field to the mark structure that is a string containing a copy of the original command that created it; write that string into the save file. 3 - For each mark save the vertices in a datablock (see below) $MARK_1 << EOM 0 0.5 0.5 0 0 -0.5 -0.5 0 0 0.5 EOM set mark 1 $MARK_1...
I've now had a look through all the code. Here are my comments. Code consolidation A loop like this appears many times in the code for (this = first_mark, prev = NULL; this != NULL; prev = this, this = this->next) { /* is this the mark we want? */ if (e->type == this->tag) { mark = this; break; } } These should be replaced by a call to a shared utility routine (struct mark_data *) get_mark(int tag) I realize the loops are not truly identical, so some care is needed. Difference between show and save...
After playing a bit using "plot with marks" I have a suggestion. I think that the pointsize property should behave for marks as much as possible exactly as it does for "plot with points". Add the PLOT_STYLE_HAS_POINT property to the MARKS plot style so that the pointsize keyword is parsed and interpreted using the lp_parse routine shared by other plot styles. If a pointsize is provided in the plot command it is used as a multiplier for whatever size the mark would otherwise have been drawn. Thus...
"set term" causes a plot to be skipped
Thanks. The fix was to a line already noted as dubious in a previous commit, but I didn't have a reproducer script to confirm whether the fix was really correct or not. Yes, needed for 6.0 also.
variable mark size in a plot I don't know whether it's a bug or my misunderstanding, but I can't get the variable pointsize scaling to work for "plot with marks". As your example shows, 'pointsize' and scaling (by the 3rd and 4th column) conflict in the current implementation. I'm not sure which one to use if 'pointsize' and scaling are specified at the same time. I am still confused about this. My understanding, perhaps wrong, was that set mark does not specify what the coordinate units are, so...
It seems the patch did not successfully attach.