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
结果:
我有一个小问题:我需要每个直方图框对应的高度值,但只得到一个。代码和图像附在下面。提前谢谢大家!
输入文件具有以下数据结构,全部在一行中:
大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
结果: