我在绘制图表时遇到了问题,希望将网格线绘制在图表后面并保持轴标记在其前面,即使数据点靠近轴也是如此。
考虑以下示例数据,命名为“t_data”:
0 1
1 3
1.8 0
3 5
4 0
5 2
并且这个脚本:
reset session
set terminal pdfcairo enhanced color font "Arial,10" size 7.5cm,6cm
set output "t_graph.pdf"
set style line 1 lc rgb "#ff0000" lw 1 pt 5 ps 0.5 pi -1
set pointintervalbox 0.7
unset key
unset title
unset border
set border 3
set xrange [0:5]
set yrange [0:*]
set xtics border nomirror out font "Arial,9"
set ytics border nomirror out font "Arial,9"
set mxtics 5
set mytics 5
set xlabel "x"
set ylabel "y"
set grid xtics mxtics ytics back lt -1 lw 1 lc rgb "#808080", lt -1 lw 1 lc rgb "#808080" dt 2
set tics front
plot "t_data" u 1:2 w lp ls 1
set out
为了让刻度标记出现在数据点的前面,例如在
x=0, 2
和4
处,我阅读了这里(gnuplot: fill area curve keeping tics on top)的建议,使用set tics front
命令放置在plot
命令之前,如脚本所示。然而,这似乎会覆盖我给set grid
命令设置的选项back
,即网格也会绘制在我的图形上(当我在执行上述脚本后运行show grid
时,它甚至显示Grid drawn at front
)。当我交换
set grid
和set tics
命令时,网格和刻度标记都在绘图点的后面绘制,从而部分遮挡了主要刻度标记并完全遮挡了次要刻度标记(请注意,无论如何轴线仍绘制在绘图点的上方)。有人能帮我找到方法,让网格出现在绘图点的后面,并且刻度标记出现在它们的前面吗(我认为以这种方式绘制图形最有意义,但这实际上只是我的个人看法)? 我也非常好奇为什么
set tics
和set grid
命令似乎会相互影响。我在OpenSUSE 42.3 LTS上使用gnuplot版本
5.0 patchlevel 0
。
5.2.5
,现在它可以正常工作了。我没有明确检查它是否已经在版本5.0.2
中工作,但我仍然会将其标记为正确的。 - Lt. Frank Drebin