【问题标题】:gnuplot: draw grid behind plot points and tics in frontgnuplot:在绘图点后面绘制网格,在前面绘制网格
【发布时间】:2019-03-25 03:14:21
【问题描述】:

如果数据点靠近轴,我在绘制图表后面的网格线并将轴标记保持在它们前面时遇到困难。

考虑这些名为“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

为了让 tic 标记位于 x=0, 24 的数据点前面,我读到,例如,这里 (gnuplot: fill area curve keeping tics on top) set tics front 命令应该在 @987654327 之前@ 命令,如脚本中所示。然而,这似乎覆盖了我为set grid 命令提供的选项back,即,网格也绘制在我的图形顶部(当我在执行上述脚本后运行show grid 时,它甚至显示Grid drawn at front) .

当我交换 set gridset tics 命令时,网格和抽动都绘制在绘图点后面,因此部分模糊了主要的抽动标记和完全的次要抽动标记(注意,轴在任何一种情况下,仍然绘制在绘图点的顶部)。

谁能帮助我,弄清楚如何在绘图点后面获取网格和在它们前面的标记(我认为这种绘制图表的方式最有意义,但这真的只是恕我直言)?我也很好奇为什么set ticsset grid 命令看似相互影响的起源。

我在 OpenSUSE 42.3 LTS 上使用 gnuplot 版本 5.0 patchlevel 0,如果这很重要的话。

【问题讨论】:

    标签: gnuplot


    【解决方案1】:

    我认为这已在5.0.2 版本的 Gnuplot 中得到修复。对应的Changelog 状态:

    2015-11-09 伊桑·梅里特

    • src/axis.c src/axis.h src/graphics.c src/save.c src/set.c src/show.c src/unset.c:文档说“设置抽动 frontback 控制抽动是放在后面还是中间 情节元素的前面”。这是真的,但它做到了 通过随着抽动移动整个网格,所以你不能 将 tic 和 tic 标签完全放在网格线的前面。 解耦这两个操作,以便 set tics {front|back} 执行 只有它记录在案的事情。错误 #1704

    • src/axis.c (gen_tics):“set {*}tics rangelimit”适用于次要 抽动以及主要抽动。错误 #1705

    【讨论】:

    • 谢谢!我刚刚将我的 gnuplot 更新到版本 5.2.5,它现在可以正常工作了。我没有明确检查它是否已经在版本5.0.2 中工作,但我仍然会将其标记为正确。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多