“绘图”;“之前和之后”;gnuplot中的图?
我已经成功地使用gnuplot绘制了箱线图。但是现在我想坚持使用gnuplot来满足我所有的绘图需求,并希望做一些Prism可以做的事情:“绘图”;“之前和之后”;gnuplot中的图?,plot,gnuplot,Plot,Gnuplot,我已经成功地使用gnuplot绘制了箱线图。但是现在我想坚持使用gnuplot来满足我所有的绘图需求,并希望做一些Prism可以做的事情: 我只有两列数据(之前和之后),希望所有对都用一条线连接起来。如果有人有任何想法,那就太好了 这是不可能开箱即用的,因此需要一些修改 XTIC是手动设置的,0是'Before'的x-值,1是'After'的值。这些数值以后必须在绘图中明确使用 这些线绘制为无头的箭头。使用lc变量(即linecolor变量),我们可以使用Using语句的最后一列从相应的线型
我只有两列数据(之前和之后),希望所有对都用一条线连接起来。如果有人有任何想法,那就太好了 这是不可能开箱即用的,因此需要一些修改
- XTIC是手动设置的,
是'Before'的0
-值,x
是'After'的值。这些数值以后必须在绘图中明确使用1
- 这些线绘制为无头的
箭头。使用
(即lc变量
),我们可以使用linecolor变量
语句的最后一列从相应的线型中选择颜色Using
- 首先绘制“之前”点。不幸的是,没有选项
,因此我使用pointtype变量
迭代,为每个点分配不同的绘图进行
点类型(
)pt
- 我使用
命令来确定要打印的点数。为了获得总计数,我必须将stats
(内部点)和记录
点相加,因为分类是基于第一列的值进行的,这与“Before”和“After”标签的“manual”xtics设置相冲突范围外
reset
file='beforeafter.txt'
set xtics ('Before' 0, 'After' 1)
set xrange [-0.2:1.2]
set offset 0,0,0.2,0.2
stats file nooutput
cnt = int(STATS_records+STATS_outofrange)
plot for [i=0:cnt-1] file using (0):1 every ::i::i with points lc i+1 pt (6+i) ps 2 t '',\
for [i=0:cnt-1] file using (1):2 every ::i::i with points lc i+1 pt (6+i) ps 2 t '',\
file using (0):1:(1):($2-$1):($0+1) with vectors nohead lc variable t ''
使用测试数据beforefafter.txt:
15.5
2 0.3
3 3
结果是:
使用线条样式
另一个变体使用线型设置颜色、线型和点类型。对于迭代,必须明确使用ls(i+1)
,而对于向量
则使用作为变量(箭头样式变量
)。使用lc变量
无法为箭头设置不同的破折号模式
因此,在我看来,这里有一个更具可读性和灵活性的变体:
reset
set termoption dashed
file='beforeafter.txt'
set xtics ('Before' 0, 'After' 1)
set xrange [-0.2:1.2]
set offset 0,0,0.2,0.2
stats file nooutput
cnt = int(STATS_records+STATS_outofrange)
set style line 1 lt 1 pt 5 ps 2 lw 2 lc rgb '#AE1100'
set style line 2 lt 2 pt 7 ps 2 lw 2 lc rgb '#6EB043'
set style line 3 lt 3 pt 9 ps 2 lw 2 lc rgb '#7777ff'
set for [i=1:3] style arrow i ls i nohead
unset key
plot file using (0):1:(1):($2-$1):($0+1) with vectors as variable,\
for [i=0:cnt-1] file using (0):1 every ::i::i with points ls (i+1),\
for [i=0:cnt-1] file using (1):2 every ::i::i with points ls (i+1)
结果是:
还没有试用过您的代码,但它看起来很棒。肯定会回来接受它作为一个答案,只是想先尝试一下。太感谢你了@ilakast示例中的线条样式不是必需的(某些测试的剩余部分)。但我添加了第二个脚本,它在点和线设置方面更灵活。你的脚本很棒,我从中学到了很多东西。在我的问题中我应该更明确一些:每个条件(之前和之后)我有30个数据点,所以我没有考虑线或点的不同形状和颜色。我可以用“pointsize”来操纵点的大小,但我仍在尝试将所有点和线变黑…@ilakast好的,只是想展示一下可能性。如果您需要不同的点大小,甚至可能取决于实际的数据更改,您可以使用pointsize变量
。