How to change dot size in gnuplot - 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

Related

Gnuplot - Multiplot autoscale displays x-axis and y-axis units twice on each other

In Gnuplot I want to display 2 plots on the same graph with the help of multiplot. The display works fine, but the scaling redisplays and the same units are put on each other, because i use autoscale.
My question is, how do i display the scaling only once?
Here is my code:
set border 1023-128
set autoscale
set multiplot
plot strDsDir.strInputFile using 1:($6/1000000) skip 1 w filledcurves x lc rgb "#00aa22"
replot strDsDir.strInputFile using 1:($7/1000000) skip 1 w filledcurves x lc rgb "#80e45f"
unset multiplot
I tried unsetting autoscale, between the "plot" and "replot", but then I lose autoscaling, and graphs slip.
I also tried unsetting xtics and ytics, but then i lose the set border 1023-128 above.
Here is the picture, where my units lapse on eachother :
And here is the picture, where units dont lapse on each other, but my "set border option" disappears :
The dataset what im trying to display doesnt matter.
Thank you.
The purpose of multiplot usually is to plot several plots beside each other. If you want to plot several curves in a single plot, use a single plot command like plot x, x**2:
plot strDsDir.strInputFile using 1:($6/1e6) skip 1 w filledcurves x lc rgb "#00aa22", \
"" using 1:($7/1e6) skip 1 w filledcurves x lc rgb "#80e45f"

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 get circles with specific radii in pixels in gnuplot

When plotting data using circles, the radii of the circles depend on the data size (i.e. X/Y ranges) according to the answers for the question in Gnuplot: plot with circles of a defined radius .
Is it possible to define a screen delimited radii for the circles instead? That is, I want all the circles to have a specific radius in pixels no matter they size nor the X/Y ranges.
So you are just looking for a plot symbol in the shape of a circle? Then use the usual points style with pointtype 6 (empty circles) or 7 (solid circles), and specify the pointsize scale factor (1 corresponds to default)
plot [0:2] '+' using 1:1 with points pointtype 6 pointsize 1, \
'+' using 1:(sqrt($1)) with points pointsize 1.5 pointtype 7

gnuplot lines with hypertext points?

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.

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