【发布时间】:2025-12-01 10:20:07
【问题描述】:
我正在编写一个脚本,该脚本会为给定的 x 值生成具有任意数量 y 值的 csv。 csv 的第一行包含数据集的名称。 x 值是一个 unix 时间戳。我想使用 gnuplot 将此数据绘制为堆积线图,其中值显示为该行总数的分数。我该怎么做?
我查看了以下解决方案,并尝试将它们集成,但我无法弄清楚我做错了什么。
它会说没有足够的列或列数不匹配。
对于给定的时间索引,最多有 N 列数据。我正在查看的总数是给定时间索引的。
--
我的数据示例:
KEY,CSS,JavaScript,Perl,Python,Shell
1428852630,0,0,0,0,406
1428852721,0,0,0,0,406
1428852793,0,0,0,0,406
1428853776,0,0,0,0,781
1429889154,0,0,0,0,1200
1429891056,0,0,0,0,1648
1429891182,0,0,0,0,1648
1429891642,0,0,0,0,1648
1430176065,0,0,0,0,2056
但是,可能有大量列,我想要一个在运行时设置列数的列。
http://gnuplot.sourceforge.net/demo/histograms.html - 修改为具有任意数量的列似乎存在问题。
plot 'immigration.dat' using (100.*$2/$24):xtic(1) t column(2), \
for [i=3:23] '' using (100.*column(i)/column(24)) title column(i)
https://newspaint.wordpress.com/2013/09/11/creating-a-filled-stack-graph-in-gnuplot/
【问题讨论】:
-
有一个矛盾:“值显示为总数的分数”和“我不知道 yrange”?代码看起来不错,请解释您遇到的问题。每行是否有 24 列,例如?
-
@Joce 我刚刚添加了有关列的信息,并删除了未知的 yrange。
-
在空列中添加零怎么样?您还可以定义将在文件中使用的“缺失数据”符号,例如
set datafile missing "?"。您应该包含一个带有小数据样本的最小示例以获得准确的答案。 -
@joce 我添加了我的数据示例。
-
好的,所以文件的列数没有变化,但是您想要一个适应给定文件的列数的脚本?并且需要即时计算每行的总数。这是可行的,尽快回答。
标签: csv gnuplot data-visualization reusability