用GNUPlot制作直方图

时间:2013-10-28 03:15:15

标签: gnuplot histogram

我想使用第1,2和1,3列来从一个数据文件中制作两个比较直方图。

(数据文件名为'Cumulos por Edades.tab')

6.25   46   60
6.75   29   65
7.25   79   70
7.75   87   75
8.25   80   80
8.75   41   84
9.25   28   89
9.75   13   94

我能够做出一些东西,但不是我想要的东西。这是代码。

(抱歉,我无法上传结果图片)

set terminal postscript enhanced color dashed lw 2 "Helvetica" 14
set output "Histograma.ps"
set key horizontal below height 1
set key box lt 1 lc -1 lw 2
set xlabel "log(t)"
set ylabel "N(t)"
set xrange [6:10]
set xtics 6,0.5,10
set grid ytics ls 2 lc rgb "black"
set title "Histograma de Cumulos Abiertos por Edades"
set style data histogram
set style histogram cluster gap 1
plot "Cumulos por Edades.tab" u 1:2 w boxes lc rgb 'blue' t 'Generacion Real',\
"Cumulos por Edades.tab" u 1:3 w boxes lc rgb 'red' t 'Generacion Constante'

我想得到的是一个直方图,我可以看到两列,但我能得到的只是一个叠加在另一个上。

如果你们中的任何人能够帮助我,我真的很感激。

1 个答案:

答案 0 :(得分:3)

使用set style data histogram相当于使用with histogram。您使用with boxes覆盖此内容。

最简单的方法是绘制为histogram。这是一个最小的运行脚本:

set style data histogram
set style histogram cluster gap 1
plot "Cumulos por Edades.tab" u 2, "" u 3

这表明,如何绘制直方图:第一行中的值以x=0为中心,第二行中的值以x=1为中心,依此类推。不幸的是,您不能像使用其他任何绘图样式那样使用第一列作为数字x - 值。但您可以使用xtic(1)使用值“按原样”,它将第一列的值作为字符串读取并将其用作tic标签:

set style data histogram
set style histogram cluster gap 1
plot "Cumulos por Edades.tab" u 2:xtic(1), "" u 3

第二个选项是使用boxes绘图样式:

plot "Cumulos por Edades.tab" u 1:2 with boxes, "" u 1:3 with boxes

这里,两列都围绕相同的x - 值绘制,虽然重叠。因此,您需要将一列向左移动一列,将另一列向右移动。而且你必须设置一个固定的盒宽:

set boxwidth 0.2 absolute
plot "Cumulos por Edades.tab" u ($1-0.1):2 with boxes,\
     "" u ($1+0.1):3 with boxes