gnuplot lines with hypertext points? - gnuplot

I'm trying to get a linespoints plot with the points being hypertext. So far, I've managed to get linespoints working but without hypertext and I've split it into two plots overlaid, one with lines one with hypertext points. While the second "works", it results in an extra key for the points. Ideally, I want linespoints key entries for each line and points combination, not a line key and a points key.

That may be possible with a bit cheating. Usually the hypertext is shown only if also points is set. Since the area which is active for the hypertext depends on the point size, you can draw all points with linespoints and then use a transparent point when plotting the labels:
set samples 11
set xrange [0:10]
plot '+' using 1:1:1 with linespoints pt 7 ps var title 'mytitle',\
'+' using 1:1:(sprintf('(%d,%d)', $1, $1)):1 with labels hypertext point pt 7 lc rgb '#ff000000' notitle
Note for other users: The hypertext option was introduced in version 5.0.

Related

How to set a legent without points and duplicate with in the plot?

I would like only the title in the legent without point.
When I plot yerrorbar, there is an error:
duplicated or contradicting arguments in plot options
How to rewrite it?
set key tc variable
plot 'file.txt' with points pt 7 title "A" with yerrorbar
If something is missing in my question, let me know please.
In recent gnuplot versions there is a separate option keyentry (introduced in version 5.2.6).
The documentation says
gnuplot> help keyentry
Normally each plot autogenerates a single line entry in the key. If you need
more control over what appears in the key you can use the `keyentry` keyword
in the `plot` or `splot` command to insert extra lines. Instead of providing
a filename or function to plot, use `keyentry` as a placeholder followed by
plot style information (used to generate a key symbol) and a title.
Example
set key box width 3
plot 'file.txt' with points pt 7 notitle, keyentry title "Some Title"
In older gnuplot versions a work-around is to plot some function that lies entirely outside the plot and give it the desired title. This may generate warning messages such as "all points out of range" but it does place the title in the key. Example below. Note that the pointtype is given as an empty string.
set yrange [0:*]
plot 'file.txt' with points pt 7 notitle, -1 with points pt '' title "Some Title"

gnuplot hypertext doesn't work on svg terminal

I have a file 'test.data' having the following data:
0 0 "no yes"
1 3 "yes no"
4 6 "th"
7 9 "fo"
I can run gnuplot command from linux:
plot 'test.data' using 1:2:3 with labels hypertext point pt 7
It works with the mouse over showing the hypertext from 3rd column. But when I use svg as term, the hypertext doesn't show.
set term svg mouse jsdir "http://.../TEST/"
set output "test.svg"
plot 'test.data' using 1:2:3 with labels hypertext point pt 7
The I load http://.../TEST/test.svg
It plots the data but no hypertext. Please help! Thanks!
(I also tried adding, set label at 4,6 "th" hypertext point pt 1)

Plot one single curve with different successive colors with gnuplot

Using gnuplot I would like to plot a data set, signal vs. time (let's say a chromatogram) with different colors for selected regions of the curve (let's say peaks) but I am not sure whether it is possible or not.
What I tried so far is something like:
plot [2:4.6] [0:100] 'data.csv' using 1:2 with lines lt 1,\
[4.6:4.7] [0:100] 'data.csv' using 1:2 with lines lt 2,\
[4.7:6] [0:100] 'data.csv' using 1:2 with lines lt 3
but it does not seem to work, since I only get the 'invalid expression' message.
Use linecolor variable to dynamically specify from which line type to take the color:
lt(x) = (x >= 4.7 ? 3 : (x >= 4.6 ? 2 : 1))
plot 'data.csv' using 1:2:(lt($1)) linecolor variable
Although the method proposed by Christoph answer is good for a limited number of color changes, it may be long and complicated to set up in my case since my real data set will have many peaks and many changes of color.
I found a better one based on this question gnuplot: yerrorbars with linecolor variable, it simply consists in using a third column (which can simply be added using a spreadsheet) to set the color of every data point with the gnuplot code:
plot [2:6] [0:100] 'data.csv' using 1:2:3 linecolor variable with lines notitle

How to change dot size in gnuplot

How to change point size and shape and color in gnuplot.
plot "./points.dat" using 1:2 title with dots
I am using above command to plot graph ,but it shows very small size points.
I tried to use command
set pointsize 20
but still point size is same.
Use the pointtype and pointsize options, e.g.
plot "./points.dat" using 1:2 pt 7 ps 10
where pt 7 gives you a filled circle and ps 10 is the size.
See: Plotting data.
The pointsize command scales the size of points, but does not affect the size of dots.
In other words, plot ... with points ps 2 will generate points of twice the normal size, but for plot ... with dots ps 2 the "ps 2" part is ignored.
You could use circular points (pt 7), which look just like dots.
plot "./points.dat" using 1:2 title with dt 2 lw 4

How to add custom label to Gnuplot graph legend?

In a graph I'm making with gnuplot I draw some grey lines (set arrow command), which represent the physical boundaries of my experiment (i.e., walls)
I would like to know how I can add this information on the legend of the graph, so it says "Walls" and have a grey line next to it.
I thought about creating a new series that contained this information, but I was wondering if it's possible to explicitly add it.
You can't add information directly to the legend. You can, however, either draw the legend explicitly, or plot a line which will not appear within the range of the plot, e.g.
plot [][0:1] 2 lc rgb 'gray' t 'Walls'
Or, if your x and y limits are already set:
...
[set x and y limits here]
...
plot 1e20 lc rgb 'gray' t 'Walls'
Just wanted to note: since plotting a single line tended to mess up a graph of mine, a better solution for me was to plot a single point; but as found in Plotting single points « Gnuplotting, that is kinda difficult (especially if insertion at arbitrary plot legend/key position is needed) - unless redirection is used... This is what worked for me:
plot "filename" using 1:8 \
,\
... # more plot lines here
,\
"<echo '-1 -1'" lc rgb 'white' with points title '---' \
,\
... # more plot lines here
One simple way is to make the name of the data file the legend which you want and then plot that data file.

Resources