Reputation: 3236
How can I define one format for the main grid (xtics, ytics) and another one for the minor tics (mxtics and mytics)?
I tried:
set style line 100 lt 1 lc rgb "gray" lw 2
set style line 101 lt 1 lc rgb "gray" lw 1
set grid xtics ytics ls 100
set grid mxtics mytics ls 101
But this take the last defined lw (1) for all grids.
Upvotes: 11
Views: 39284
Reputation: 121
set style line 100 lt 1 lc rgb "gray" lw 2
set style line 101 lt 0.5 lc rgb "gray" lw 1
set grid mytics ytics ls 100, ls 101
set grid mxtics xtics ls 100, ls 101
It really works :).
Upvotes: 12
Reputation: 221
gnuplot
will also draw grid lines at minor tics using set grid mxtics mytics
.
To set different line styles for major grid lines and minor grid lines, use the correct syntax (with a comma separating the major line style from the minor line style):
set style line 100 lt 1 lc rgb "blue" lw 2
set style line 101 lt 1 lc rgb "gray" lw 1
set grid mxtics mytics ls 100, ls 101
Upvotes: 5
Reputation: 3236
The minor tics mxtics and mytics are also drawn but with the same format than the main tics. And that is a problem when you want to differentiate them. Your solution with the arrows did the trick but I found it easier to first draw the minor ticks and than overwrite them with arrows for the main ones. Tanks.
set style line 100 lt 2 lc rgb "blue" lw 1
set style line 101 lt 1 lc rgb "gray" lw 1
# first draw the minor tics
set xrange [0:1]
set mxtics 10
set yrange [0:1]
set mytics 5
set grid mxtics mytics ls 101
# then the main tics
dx=0.2 #grid spacing in x
set for [i=1:5] arrow from graph i*dx,graph 0 to graph i*dx,graph 1 nohead front ls 100
dy=0.2 #grid spacing in y
set for [i=1:5] arrow from graph 0,graph i*dy to graph 1,graph i*dy nohead front ls 100
plot sin(x)
Upvotes: 6
Reputation: 310287
In gnuplot, the grid is only drawn at the location of the major tic marks, however, if you want to have two distinct grids, you can use arrows:
set style line 101 lt 1 lc rgb "gray" lw 1
dx=.1 #grid spacing in x
set for [i=1:10] arrow from graph i*dx,graph 0 to graph i*dx,graph 1 nohead front ls 101
set xrange [0:1]
plot sin(x)
Upvotes: 1