【问题标题】:Gnuplot histogram labelsGnuplot 直方图标签
【发布时间】:2022-01-20 15:47:47
【问题描述】:

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

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

大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

【问题讨论】:

    标签: gnuplot histogram


    【解决方案1】:

    首先,您的值相差 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
    

    结果:

    【讨论】:

    • 成功了!感谢@theozh 提供对数刻度的建议并在额外的循环中添加数组名称等。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    • 2013-07-28
    • 2017-08-25
    • 2016-05-27
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    相关资源
    最近更新 更多