Gnuplot 直方图标签

Gnuplot histogram labels

我有一个小问题:我需要每个直方图框对应的高度值,但只得到一个。代码和图像附在下面。提前谢谢大家!

输入文件具有以下数据结构,全部在一行中:

大7995中11小1


set terminal png
set term pngcairo dashed
set title  " Grain Size vs N of Zones"
set ylabel "N of zones"
set style fill solid 1.0
 
set yr [0.0:8500]

filename2(n) = sprintf("f_vs_a_%03.0f_25.dat", n)
outfile  (n) = sprintf("f_vs_a_%03.0f_25.png", n)


set style data histograms

do for [N=1:86] {
    set output outfile(N)
    infile = filename2(N)

    plot for [i=N:N] filename2  (i) using 2:xtic(2)  title 'large',\
         for [i=N:N] filename2  (i) using 4:xtic(4)  title 'medium',\
         for [i=N:N] filename2  (i) using 4:xtic(4)  title 'small',\
                 
       }
EOF

首先,您的值相差 7996、11 和 1 个数量级。如果您不是对数刻度,可能很难看到 11 和 1。其次,您有两条相同的行 using 4:xtic(4).

假设我理解你的意图,我会做这样的事情(就像没有你的循环但有对数刻度图的例子):

代码:

### plotting a row including titles
reset session

$Data <<EOD
large 7995 medium 11 small 1
EOD

set xrange[0.5:3.5]
set yrange [0:10000]
set boxwidth 0.8 
set style fill solid 1.0

set multiplot layout 2,1

    array myTitles[3]
    plot for [i=1:3] $Data u (i):(myTitles[i]=strcol(2*i-1), column(2*i)):xtic(2*i) w boxes notitle, \
    for [i=1:3] keyentry w boxes lc i title myTitles[i]

    set logscale y
    replot

unset multiplot
### end of code

结果: