【问题标题】:How to make bar graphs with Gnuplot如何使用 Gnuplot 制作条形图
【发布时间】:2018-01-23 00:48:39
【问题描述】:

我是 gnuplot 的新手,很多说明和指南都让我有点不知所措。我想我正在尝试做的事情并没有那么复杂,但我似乎无法找到关于如何完成所有部分的明确指导。

我正在使用另一个程序 Netlogo 来创建模拟。为了测试我制作的每个不同版本的模型之间的差异,我一遍又一遍地运行它们,并为每次运行生成数据,然后将其导出到 Excel 文件中。在这种情况下,数据包含每次运行所用的时间。所以 Excel 文件看起来像一列数字。然后我测试不同版本的模型,并为这个新模型生成的数据创建一个新的 Excel 文件。

创建 Excel 文件后,我尝试使用 gnuplot 绘制它们。目标是为每个版本模型制作一个带有条形的条形图,条形标记运行给定模型所花费的平均时间,误差条基于标准偏差。我真的不知道如何解决这个问题;我可以绘制给定 Excel 文件中的各个数据点,也可以找到平均值。但是当我尝试绘制平均值时,它会在 x 轴上给出一条从 0 到 3000 的线,以及在 y 轴上的平均值。在尝试直方图或箱线图命令时,它只会给出从 0 到 3000 的平均值上升的框。

有人知道怎么做吗...?

谢谢, 艾萨克

【问题讨论】:

    标签: gnuplot bar-chart


    【解决方案1】:

    如果我对您的理解正确,则进入每个条的数据位于单独的文件中。这里有一些东西可以帮助你开始:如果你有一个数据文件model1.dat,其中包含一个模型的时序数据,

    4
    5
    6
    7
    

    另一个数据文件 model2.dat 包含另一个模型的数据,

    6
    8
    10
    12
    

    然后是 gnuplot 脚本

    models="model1 model2"
    set style data boxplot
    set style fill solid 0.5 
    set yrange [0:15]
    unset key
    plot for [i=1:words(models)] word(models,i).".dat"  u (i):1:(0.5):(word(models,i))
    

    给予

    【讨论】:

    • 效果很好!谢谢!我想知道你是否也可以澄清你给我的代码的底线发生了什么。它有效,但我真的不知道发生了什么。我已经足够修改它以选择文件中要使用的列或更改数据文件,但我真的不知道发生了什么。另外,未设置键是什么意思?随意将我引导到其他地方,以解释这是否很麻烦。非常感谢您的帮助!
    • 我很高兴这对您有所帮助。最后一个命令相当于plot "model1.dat" u (1):1:(0.5):("model1"), "model2.dat" u (2):1:(0.5):("model2")。每个u(对于using)指令有4个参数:绘制框的x坐标(1和2),数据的列号(1),框的宽度(0.5),以及要在 x 轴上显示为 tic 标签的文本(“model1”和“model2”)。 unset key 关闭图例;随意删除它,看看会发生什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多