使用csv文件绘制直方图

时间:2014-12-21 12:05:19

标签: csv gnuplot

我有一个csv文件,格式如下。

Label 1, 20
Label 2, 10
Label 3, 30
.
.
.
LabelN, 5

如何使用csv文件中给出的标签作为x轴上的标签来绘制第二列?

(类似于this,其中1891-1900是标签)

编辑:

发现这些与我的相似的问题,

  1. Plotting word frequency histogram using gnuplot

  2. Gnuplot xticlabels with several lines

  3. 尝试回答1中给出的命令后。

    set xtics border in scale 1,0.5 nomirror rotate by -90 offset character 0, 0, 0
    plot "data.txt" using 2:xticlabels(1) with histogram
    

    我得到一个不那么干净的histogram,因为标签的数量非常大。我已经尝试了答案2中给出的格式。任何人都可以建议一种方法来获得更清晰的直方图吗?

1 个答案:

答案 0 :(得分:1)

您有几种选择:

  1. 仅绘制重要标签(例如极值,平均值等)
  2. 如果标签形成系列
  3. ,则每隔5个标签跳过一次
  4. 如果您必须绘制每个标签,请拆分图表。
  5. 似乎情况2)适用于此处,因此在绘图之前跳过一些标签会使情节看起来更好。

    您可以使用类似以下脚本的内容预处理文件以跳过每个第5个标签(例如)

    line_number = 0
    for line in open("d1.txt", "r"):
        line_split = line.split(",")
        if(line_number % 5 == 0):
            print line,
        else:
            print ",",line_split[1],
        line_number += 1
    

    您现在可以使用适当的字体大小绘制

    set xtics border in scale 1,0.5 nomirror rotate by -90 offset character 0, 0, 0
    set xtics font ",9"
    plot "d2.txt" using 2:xticlabels(1) with histogram title "legend_here"
    

    enter image description here