我想通过gnuplot在直方图中绘制两个点线,结果图表并不是我想要的。实际上,我希望两个点线(粉红色和浅绿色点)中的点对齐两种类型的柱子的中心,因此浅绿色的一个保持静止,而粉红色的一个向右移动一点,就像黑色的一个我画了。
'test.dat'如下:
1 10 15 8 22 2 11 19 7 21 3 9 14 7 19 4 10 21 8 23 5 9 17 9 21
和'plt'文件:
set style data histogram
unset key
set yrange[0:12]
set y2range[0:25]
plot "test.dat" using 2:xticlabel(1) axis x1y1,\
"test.dat" using 3:xticlabel(1) axis x1y2 with linespoints,\
"test.dat" using 4:xticlabel(1) axis x1y1,\
"test.dat" using 5:xticlabel(1) axis x1y2 with linespoints
答案 0 :(得分:1)
我的回答基于this contribution,它使用方框而不是直方图。好处是,您确切地知道这些盒子放置的位置,您可以利用这些盒子绘制线条图。
以下是代码:
dx=1.
n=2.
total_box_width_relative=0.25
gap_width_relative=0.1
d_width=(gap_width_relative+total_box_width_relative)*dx/n
set boxwidth total_box_width_relative/n relative
set style fill transparent solid 0.5 noborder
plot "test.dat" u ($1):2 w boxes lc rgb"green" notitle,\
"test.dat" u ($1+d_width):4 w boxes lc rgb"red" notitle,\
"test.dat" u ($1):3 w linespoints notitle,\
"test.dat" u ($1+d_width):5 w linespoints notitle
set yrange [0:15]
replot
对代码的一些解释:
dx
,否则框的间距将关闭。 n
total_box_width_relative
和gap_width_relative
控制框的轴向和间距set ...
命令控制框的外观($1)
,但是,对于第二组框和相应的行,你选择你的定义轴向偏移:($1+d_width)
- 这将确保线图中的数据点与框对齐set yrange
命令情节将如下所示:
注意强>
我根据您提供的数据更改了线图的数据。这样做只是为了使点更靠近方框并说明效果。