【发布时间】:2011-05-26 07:35:42
【问题描述】:
例如如果我有一个图表并且想要沿 X 轴每隔 10 个单位添加垂直线。
【问题讨论】:
标签: gnuplot
例如如果我有一个图表并且想要沿 X 轴每隔 10 个单位添加垂直线。
【问题讨论】:
标签: gnuplot
这是我的 perl 脚本中的一个 sn-p 用于执行此操作:
print OUTPUT "set arrow from $x1,$y1 to $x1,$y2 nohead lc rgb \'red\'\n";
正如您可能从上面猜到的那样,它实际上被绘制为“无头”箭头。
【讨论】:
您也可以这样做:
p '< echo "x y"' w impulse
x 和 y 是绘制竖线的点的坐标
【讨论】:
'-'dummy file
warning: Skipping data file with no valid points x range is invalid。不知道为什么。
您可以将grid 功能用于第二个未使用的轴x2,这是绘制一组规则间隔线的最自然方式。
set grid x2tics
set x2tics 10 format "" scale 0
通常,网格绘制在与轴上的 tic 相同的位置。如果线条的位置与抽动位置不对应,gnuplot 会提供一组额外的抽动,称为x2tics。 format "" 和 scale 0 隐藏了 x2tics,因此您只能看到网格线。
您可以像往常一样使用linewith、linecolor 设置线条样式。
【讨论】:
来自 Gnuplot 文档。要在 x=3 处从图表底部到顶部绘制一条垂直线,请使用:
set arrow from 3, graph 0 to 3, graph 1 nohead
【讨论】:
要详细说明以前关于“每个 x 个单位”部分的答案,我想出以下答案:
# Draw 5 vertical lines
n = 5
# ... evenly spaced between x0 and x1
x0 = 1.0
x1 = 2.0
dx = (x1-x0)/(n-1.0)
# ... each line going from y0 to y1
y0 = 0
y1 = 10
do for [i = 0:n-1] {
x = x0 + i*dx
set arrow from x,y0 to x,y1 nohead linecolor "blue" # add other styling options if needed
}
【讨论】: