【问题标题】:Stacked bar graph in gnuplot with a CSV带有 CSV 的 gnuplot 中的堆积条形图
【发布时间】:2018-03-16 06:50:20
【问题描述】:

我是 gnuplot 的新手。我一直在尝试将 CSV 的内容绘制成各种格式,例如线条、框等。但是,由于我拥有的数据量和性质,CSV 中的各个字段/列在同一实例中具有有限的数据时间,由于显而易见的原因,我看到它们在情节中重叠。我想问是否有任何方法可以突出显示所有图,这意味着,如果多列数据似乎共享相同的时间戳,有没有办法我可以看到前面的最小值和后面的较大值。一种可能的方法是堆叠条形图。

这是我输入的 CSV 的片段:

TimeStamp,Score_1,Score_2,Score_3,Score_4
13:48:24, 8800, 8796, 4, 10
13:48:29, 1500, 8896, 4, 900
13:48:33, 8900, 8896, 4, 0
13:48:41, 8900, 8896, 4, 0
13:48:43, 6900, 8896, 4, 5000
13:48:55, 8900, 8896, 4, 0
13:49:21, 8900, 8500, 4, 0
13:49:29, 2900, 8000, 1000, 2000
13:50:29, 1900, 8896, 4000, 0
13:55:29, 9000, 8896, 1400, 0
13:52:29, 900, 8896, 4, 0

到目前为止我所做的尝试:

INPUT_FILE=ARG1
set datafile separator ','
set key autotitle columnhead
set boxwidth 0.5 relative
set style fill solid 1.0 border -1

plot INPUT_FILE using 1:2 with boxes, \
"" using 1:3 with boxes, \
"" using 1:4 with boxes, \

#plot INPUT_FILE using 1:2 with lines, \
#"" using 1:3 with lines, \
#"" using 1:4 with lines, \

【问题讨论】:

标签: linux csv gnuplot data-visualization


【解决方案1】:

“带点”绘图将使您能够查看给定 Y 轴的所有合理不同的 X 值。合理是相对于图表的缩放比例,所以设置你的 yrange 和 zrange 以显示所需的最小视图。

plot "blah" using 1:2 with dots
set xrange [0-10000]
set yrange [0-10000]

另一种解决方案可能是预处理您的数据,即对您的分数行进行排序,以便 z 顺序始终在前面显示最低值。这对我来说听起来最简单。

gnuplot 支持 3D 绘图,因此使用 splot 结合旋转视图和向数据集添加 z 维度也可以实现它。这涉及更多的工作,并且仍然预处理您的数据和一些围绕哪些行分配给哪个 z 顺序的逻辑。

xrot=85
zrot=0
xview(xrot)=xrot
zview(zrot)=zrot
set view xview(xrot), zview(zrot), 1.3, 1
set size square

set output "blah.gif"
splot "blah.dat" using 1:2:6 with dots

【讨论】:

    猜你喜欢
    • 2014-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 1970-01-01
    相关资源
    最近更新 更多