Displaying markers on specific values in Gnuplot's line plot
I have data for a CDF in a file which looks like the following: 0.033 0.0010718113612 0.034 0.0016077170418 0.038 0.0021436227224 ... ... ... ... 0.847 0.999464094319 0.862 1.0 First column is the X-axis value and the second column is the CDF value on Y-axis. I set the line style as follows: set style line 1 lc rgb 'blue' lt 1 lw 2 pt 7 ps 0.75 # --- blue and subsequently plot the line with the following: plot file1 using 1:2 title 'Test Line CDF' with linespoints ls 1 This all works fine, the problem seems to be that my CDF file is pretty big (about 250 rows) and Gnuplot would plot the marker/point (a circle in this case) for every data point. This results in a very "dense" line because of the over-concentration of markers such that the underlying line is almost not visible as I show in an example image below: How can I selectively draw the markers so that instead of having them on all data points, I plot them after every 50 data points, without having to decrease the number of data points (which I believe is what "every n" in the plot command would do) in my data file or decrease the marker size?
There is no need to use two plots commands, just use the pointinterval option: plot 'data' pointinterval 5 with linespoints That plots every line segment, but only every fifth point symbol. The big advantage is, that you can control the behaviour with set style line: set style line 1 lc rgb 'blue' lt 1 lw 2 pt 7 ps 0.75 pi 5 plot 'data' w lp ls 1
You can plot the same function twice, once with lines only, and then with points every n points. This will draw less points without decreasing the amount of segments. I think this is what you want to achieve. For this example I have done set table "data" ; plot sin(x) to generate numerical sampling of the sin(x) function. What you have at the moment is: plot "data" with linespoints pt 7 which gives Now you can do the following: plot "data" with lines, "data" every 10 with points pt 7 lc 1 which gives what you want: You can change the styling to meet your needs.
Although #Miguel beat me to it, but I'm also posting my solution below: The idea is to once draw the line and then draw the points with the "every n" specifier. I changed my own Gnuplot script in the following manner. A kind of hack but works: set style line 1 lc rgb 'blue' lt 1 lw 2 pt 7 ps 0 # --- blue plot file1 using 1:2 title '' with linespoints ls 1, "" using 1:2 every 20 title 'Test Line CDF' with points ls 1 ps 0.75 This retains the nice curve, without quantizing it too coarsely while also keeping the points much better spaced.
Gnuplot sparse matrix display
Gnuplot lines overlap with tics
how to plot data which has mostly true values in gnuplot?
GNUplot concatenate 2 macros in an xlabel
Determine min and max in gnuplot
Plot cyclic sum of some row data
How to count the number of indices in a Gnuplot input file
GNU Plot how to plot histogram in timeseries
Create groups of dots histogram with gnuplot
Gnuplot: Missing values on second y-axis
Gnuplot fat lines overlap with axis
Using relative paths in gnuplot plot files
increment of ytics in gnuplot
gnuplot: Plot and fit 2d function with two variables
Gnuplot: Plotting a path over a surface
How to mark 90 percentile in gnuplot