0

我想通过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

在此处输入图像描述

4

1 回答 1

2

我的回答是基于这个使用框而不是直方图的贡献。好处是,您可以确切地知道这些框的放置位置,您可以利用它来绘制线图。

这是代码:

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命令

情节将如下所示:

在此处输入图像描述

请注意
,我根据您提供的数据更改了线图的数据。这样做只是为了使点更接近盒子并说明效果。

于 2013-07-03T17:38:30.913 回答