Different behaviour of plots on Octave-CLI and Octave-GUI - gnuplot

I use Octave v 4.4.1 and it has been observed that I get different looking plots while plotting using Octave-CLI and Octave-GUI. I had configured the graphics_toolkit to be Gnuplot.
Plot using Octave - CLI :
Plot using Octave - GUI :
I am unsure why such a difference exists between the plots. Is there a way by which I can get the behaviour of Octave-GUI plot on Octave-CLI? It will be well appreciated if someone can say about the reason why the differences happen to be so.

Related

Using the results of an interactive plot to update a second graph on a grid using Bokeh and CustomJS

I have an interactive Bokeh plot that uses CheckboxGroup to plot experimental additive values of different sources. In the background I have stationary plots of theoretical requirement values.
I want to be able to, e.g.
1.click on sourceA and sourceB resulting in the plot of sourceA+sourceB - I have 8-9 sources and already have this working
2.use a linked plot that shows the percentage error of this combination relative to all the theoretical requirement values.
I don't know JS so, can't really understand how to use this dynamic value for another plot.
Callback for the first part of the problem is as follows:
https://stackoverflow.com/a/54455722/8565759
I can't really show an image of the actual results, the data is export controlled.

Better understanding histograms in Gnuplot

In gnuplot, you can create a histogram like
binwidth=#whatever#
set boxwidth binwidth
bin(x,width)=width*round(x/width)
plot "gaussian.data" u (bin($1,binwidth)):(1.0/10000) smooth freq w boxes
Here, I am interested in a probability histogram, hence the 1.0/10000.
I have spend a lot of time reading the gnuplot documentation on using and what I understand is that I am telling gnuplot to plot data from gaussian.data using certain values for the x and y. In fact, when I open the data file associated with the plot command (achieved through making a temporary file), I see that the y values are 1/10000, as expected. But then, the x and y values change. It seems like there's something dynamic about it. I do not quite understand this behavior of using. Could anyone please guide me?
In case anyone else would like further explanation.
http://psy.swansea.ac.uk/staff/carter/gnuplot/gnuplot_frequency.htm

Linecolor (not so) variable

I'm trying to present data in a boxplot with a few additions.
On top of the boxplot, i want to also print all the data points, since there aren't that many.
There will be many boxplots side by side, and the data points will correspond, so each data point in one plot will be represented in another boxplot, however their order can change. That's why I want to color the points.
I got this so far:
plot data using (1):($1) with boxplot,\
data using (1):($1) with points lc variable
[more plots...]
This needs an extra column in each datafile, that specifies the linecolor. Which works fine, if I had such a column, or if I could care to add it.
Is there another way to iterate through the linestyles (or colors), so it plots the first point with style 1, the second with style 2 etc.?
It seems like a real easy problem, that's either solved by some command I can't seem to find, or maybe by taking the linestyles from a different file, which would be the same for all plots (if that works in gnuplot).
Furthermore, I'd like to know if the boxplot command has the additional feature of being able to plot the average as well (or do I absolutely need the stats command from gnuplot 4.6, or some kind of hack).
Sometimes it's just nice to be able to simply add the average in a boxplot.
Is there another way to iterate through the linestyles (or colors), so it plots the first point with style 1, the second with style 2 etc.?
Yes. Gnuplot provides a number of pseudo-columns. To get more information, see
help datafile using pseudocolumn
But the gist of it is that you can use column(0) for this. I believe that iteration starts at 0 though. Since there isn't a ls 0, you'll need to add 1.
plot data using (1):($1) with boxplot,\
data using (1):($1):(column(0)+1) with points lc variable
Furthermore, I'd like to know if the boxplot command has the additional feature of being able to plot the average as well (or do I absolutely need the stats command from gnuplot 4.6, or some kind of hack).
I believe that you need either gnuplot 4.6 or some kind of hack. One such hack (which will work using gnuplot 4.4, but not earlier) could be:
sum=0.0
npt=0
compute_sum_npt(x)=(npt=npt+1,sum=sum+x,NaN)
set term unknown
plot data u 1:(compute_sum_npt($1))
avg=sum/npt
set term ...
set output ...
plot data using (1):($1) with boxplot,\
data using (1):($1):(column(0)+1) with points lc variable,\
avg w lines ls -1
If your version of gnuplot is earlier than 4.4, you'll need to use a shell command to compute the average. Something like awk should suffice.

Using images for points in gnuplot

I have a frivolous question. Is there any way to use an image in lieu of points in gnuplot? For example, if I was plotting data about pasta consumption or something, I would have pictures of pasta (instead of usual gnuplot points).
Another option is to find a dingbats type of font with a suitable glyph. Then you can use "plot with labels" using that glyph as the label string. See for example the 5th plot in the demo
http://gnuplot.sourceforge.net/demo/stringvar.html
I haven't played around with this feature at all myself, however, there is:
http://gnuplot.sourceforge.net/demo/barchart_art.html
Which shows the use of png files on a bar chart (Note, that this feature was added in Gnuplot 4.5 -- I think). With a little creativity, it seems like you could use that feature to do what you're asking -- although it would require a whole bunch of plot commands so it might be useful to write a script to generate the gnuplot script (or use iteration depending on your dataset) -- Obviously your image files would have to be in a format that your version of gnuplot understands as well ...
A possible strategy may be the plot with rgbimage option in gnuplot.
See the second example over here: http://www.gnuplot.info/demo_4.2/image.html
If you relate the center option with your data points, this may be possible.

How can I draw an implicit function f(x,y,z)=0 with gnuplot?

I want to draw the following implicit function with gnuplot
x**2+y**2+(z-1)**3-2
I know that maple or matlab can to this very simple but I want to use gnuplot.
Up to know I have no idea so I can't provide a starting point.
sorry
Here the result plotted with maple
According to the Gnuplot FAQ, this is not directly possible. There is a workaround for 2D-functions, but I don't see how this method can be applied to 3D graphs. I'd recommend solving the equation in Octave or some similar program and outputting the solutions to a file, which you can then feed into GnuPlot.

Resources