【问题标题】:Plotting multiple series from file using Gnuplot使用 Gnuplot 从文件中绘制多个系列
【发布时间】:2011-12-16 12:17:56
【问题描述】:

我有一个表格的数据文件:

Series_1 "12-Dec-2011 12:00" 32
Series_1 "12-Dec-2011 12:01" 29
Series_1 "12-Dec-2011 12:02" 27
Series_1 "12-Dec-2011 12:04" 23

Series_2 "12-Dec-2011 12:01" 45
Series_2 "12-Dec-2011 12:02" 43
Series_2 "12-Dec-2011 12:04" 38

我想使用 gnuplot 在同一个情节上绘制多个系列,但我是 gnuplot 新手,我无法弄清楚 using 子句应该如何在此处构造。

我想绘制第 2 列,日期/时间作为 X 轴,第 3 列作为 Y 轴,随后的部分被覆盖。这可能吗?当然 X 轴不必总是在第一列?

我试过了:

plot "datafile.dat" using 2:3 title 'Hits'

但得到了错误:

x range is invalid

谁能告诉我哪里出错了?

【问题讨论】:

标签: gnuplot series


【解决方案1】:

扩展@Woltan 的答案:如果您希望每个部分具有不同的颜色/样式,请使用index(但是您必须用 两个 空行分隔部分):

plot 'i' index 0 using 2:4 with lines, '' index 1 using 2:4 with lines

【讨论】:

  • +1 choroba 你的答案是 4 小时研究如何分离部分的分辨率。我没有尝试过两个换行符。
  • 明确地说,两个空行意味着三个换行。
【解决方案2】:

为了在 x 轴上绘制日期/时间序列,您需要 set xdata time。接下来,您需要告诉 gnuplot 日期/时间数据的格式。你的情况

set timefmt "%d-%b-%Y %H:%M"

应该可以解决问题。一些示例以及%X-同义词显示在here

您可能想要设置 x 轴的显示格式。在你的情况下可能

set format x "%H:%M"

会有意义。

我无法用日期/时间周围的引号绘制您的数据。使用此数据文件 (Data.csv):

Series_1 12-Dec-2011 12:00 32
Series_1 12-Dec-2011 12:01 29
Series_1 12-Dec-2011 12:02 27
Series_1 12-Dec-2011 12:03 23

Series_2 12-Dec-2011 12:01 45
Series_2 12-Dec-2011 12:02 43
Series_2 12-Dec-2011 12:04 38

还有这个脚本:

set xdata time
set timefmt "%d-%b-%Y %H:%M"
set format x "%H:%M"

plot "Data.csv" u 2:4 w l

你应该得到这个

结果。

【讨论】:

  • 谢谢。我在帮助部分中包含了引号,它指出: ...空白将每条记录分成列。但是,在计算列时会忽略一对双引号内的空格,因此以下数据文件行包含三列: 1.0 "second column" 3.0
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多