使用csv文件打印直方图

使用csv文件打印直方图,csv,gnuplot,Csv,Gnuplot,我有一个以下格式的csv文件 Label 1, 20 Label 2, 10 Label 3, 30 . . . LabelN, 5 标签1,20 标签2,10 标签3,30 . . . 拉伯恩,5岁 如何使用csv文件中给定的标签作为x轴上的标签打印第二列 (例如,1891-1900是一个标签) 编辑: 发现这些问题和我的问题很相似 在尝试回答1中给出的命令之后 set xtics border in scale 1,0.5 nomirror rotate by -90 offset ch

我有一个以下格式的csv文件

Label 1, 20 Label 2, 10 Label 3, 30 . . . LabelN, 5 标签1,20 标签2,10 标签3,30 . . . 拉伯恩,5岁 如何使用csv文件中给定的标签作为x轴上的标签打印第二列

(例如,1891-1900是一个标签)

编辑:

发现这些问题和我的问题很相似

  • 在尝试回答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 将xtics边框设置为比例1,0.5,或旋转-90偏移字符0,0,0 使用2:xticlabels(1)和直方图绘制“data.txt”
    我得到一个不太干净的标签,因为标签的数量相当大。我试过答案2中给出的格式。有人能推荐一种更清晰的直方图吗?

    您有几种选择:

  • 仅绘制重要标签(例如极端值、平均值等)
  • 如果标签形成一个系列,则每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"
    

    您可以:1)仅打印重要标签(例如极端值、平均值等)2)如果标签形成一系列,则跳过每5个标签左右3)如果必须打印每个标签,则拆分图形。您可以发布原始文件的示例吗?@axiom,这是原始的csv。@axiom,我想我将拆分图形,因为有这么多标签。跳过一些标签,并使用适当的字体大小打印。看起来很干净。我想我可以跳过一些标签。谢谢