如何在gnuplot中绘制条形图?


Answers:


122

简单条形图:

条状图

set boxwidth 0.5
set style fill solid
plot "data.dat" using 1:3:xtic(2) with boxes

data.dat:

0 label       100
1 label2      450
2 "bar label" 75

如果您想以不同的方式设置条形,则可以执行以下操作:

多色条形图

set style line 1 lc rgb "red"
set style line 2 lc rgb "blue"

set style fill solid
set boxwidth 0.5

plot "data.dat" every ::0::0 using 1:3:xtic(2) with boxes ls 1, \
     "data.dat" every ::1::2 using 1:3:xtic(2) with boxes ls 2

如果要为每个条目做多个小节:

data.dat:

0     5
0.5   6


1.5   3
2     7


3     8
3.5   1

gnuplot:

set xtics ("label" 0.25, "label2" 1.75, "bar label" 3.25,)

set boxwidth 0.5
set style fill solid

plot 'data.dat' every 2    using 1:2 with boxes ls 1,\
     'data.dat' every 2::1 using 1:2 with boxes ls 2

barchart_multi

如果您想变得棘手并使用一些整洁的gnuplot技巧:

Gnuplot具有伪列,可用作颜色的索引:

plot 'data.dat' using 1:2:0 with boxes lc variable

barchart_multi2

此外,您可以使用函数选择所需的颜色:

mycolor(x) = ((x*11244898) + 2851770)
plot 'data.dat' using 1:2:(mycolor($0)) with boxes lc rgb variable

barchart_multi3

注意:您必须添加一些其他基本命令才能获得与示例图像相同的效果。


对于许多应用程序,使用histogram绘图样式更为方便,尤其是对于值的分组和堆叠。
Christoph

@Christoph嗨,如果我想为这种图形添加密钥?我该怎么办 ?例如,如果我想添加一个键,说蓝线是“ winter”,红线是“ summer”
alex

1
@alex不确定,您指的是所有这些示例中的哪一个:lc rgb variable您不能拥有不同的键条目。
克里斯多夫(Christoph)

无论出于何种原因,我都必须在每个plot子句后使用指令“ notitle”,以防止出现图例。
chinnychinchin 2015年

25
使用2:带直方图的xtic(1)绘制“ data.dat”

这里的data.dat包含以下形式的数据

标题1
标题2 3
“长标题” 5

17

我只想为绝对初学者扩展最上面的答案,它使用GNUPlot创建条形图,因为我阅读了答案,但仍然对语法的泛滥感到困惑。

我们首先编写GNUplot命令的文本文件。让我们称之为commands.txt:

set term png
set output "graph.png"
set boxwidth 0.5
set style fill solid
plot "data.dat" using 1:3:xtic(2) with boxes

set term png会将GNUplot设置为输出.png文件,这set output "graph.png"是它将输出到的文件的名称。

接下来的两行很容易说明。第五行包含很多语法。

plot "data.dat" using 1:3:xtic(2) with boxes

"data.dat"是我们正在处理的数据文件。1:3表示我们将使用data.dat的第1列作为x坐标,使用data.dat的第3列作为y坐标。xtic()是负责对x轴进行编号/标记的功能。xtic(2),因此表明我们将使用data.dat的第2列作为标签。

“ data.dat”看起来像这样:

0 label       100
1 label2      450
2 "bar label" 75

要绘制图形,请gnuplot commands.txt在终端输入。



2

您可以直接使用gnuplot提供的样式直方图。如果您在输出中有两个文件,这是一个示例:

set style data histograms
 set style fill solid
 set boxwidth 0.5
 plot "file1.dat" using 5 title "Total1" lt rgb "#406090",\
      "file2.dat" using 5 title "Total2" lt rgb "#40FF00"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.