【问题标题】:Gnuplot histogram with plot line带有绘图线的 Gnuplot 直方图
【发布时间】:2017-04-12 11:45:41
【问题描述】:

我正在使用 Gnuplot 创建带有绘图线的直方图,但是,绘图线与条形头不太吻合,我也想将线放在离条形头稍远的地方。

set border 3 
set boxwidth 0.9
set tics nomirror out scale 0.75
set style fill solid 0.8

plot "03.txt" using 2:xtic(1) lt rgb "#0060ad" notitle, "" using 2 smooth csplines notitle with lines ls 1, "" using 3 lt rgb "#ff6600" notitle, "" using 3 smooth csplines notitle with lines ls 2, "" using 4 lt rgb "#dd181f" notitle, "" using 4 smooth csplines notitle with lines ls 3

更新:

这是数据文件:

500000      25.938          25.938      2
1000000     52.385          52.385      4
1500000     79.749          78.405      6.125
2000000     152.589         100.261     12.479
2500000     224.869         118.364     19.159

【问题讨论】:

  • 最好发布您的数据文件(或其中的重要部分)。我相信你会通过调整样条曲线的using 子句来实现你想要的,但是你的第2列的内容可能会对一个简单的选择产生一些影响。 “把线放在离杆头稍微远一点”的意思是整个样条线的垂直移动吗?
  • @Joce 我添加了数据文件,是的,我需要垂直移动以避免将绘图线与条形头粘在一起。

标签: gnuplot


【解决方案1】:

这应该适用于任意数量的列,您必须在变量N 中指定它们,并在调用自定义函数xbox 时对它们进行编号。这应该适用于非密集使用。您可以使用 OFFSET 变量(以 y 轴为单位)垂直偏移曲线

set border 3
#number of columns to be plotted
N=3
#vertical offset
OFFSET=0
#gapwidth (set to gnuplot's default)
GW=2
xbox(x,i)=x+(i-N*0.5)/(N+GW)
set boxwidth 0.9
set tics nomirror out scale 0.75
set style fill solid 0.8

plot "03.txt" using 2:xtic(1) lt rgb "0060ad" notitle,  \
         "" using 2 with histogram notitle,     \
         "" using (xbox($0,1)):($2+OFFSET) smooth csplines notitle with lines ls 1,     \
         "" using 3 lt rgb "#ff6600" notitle with histogram,    \
         "" using (xbox($0,2)):($3+OFFSET) smooth csplines notitle with lines ls 2,     \
         "" using 4 lt rgb "#dd181f" notitle with histogram,    \
         "" using (xbox($0,3)):($4+OFFSET) smooth csplines notitle with lines ls 3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多