gpt4 book ai didi

charts - gnuplot - 绘制堆积折线图

转载 作者:行者123 更新时间:2023-12-01 15:05:07 25 4
gpt4 key购买 nike

我使用内部基准工具。我用 gnuplot ( gnuplot 4.6 patchlevel 4 ) 用于可视化。

我需要将结果(多次运行的方法执行时间)表示为堆积折线图,如下所示:

example stacked line chart

这是我的 .tsv 的摘录数据文件:

Run MethodA MethodB MethodC 
1 192 171 152
2 227 178 161
...
10 229 161 149

我正在使用的脚本:
#!/usr/bin/gnuplot -p

reset
clear

set terminal png size 640,480
set output "timings.png"
set key top left outside horizontal autotitle columnhead
set title "Third-party REST calls"

set xlabel "Run (ordinal)"
set xtics nomirror scale 0

set ylabel "Time (milliseconds)"
set ytics out nomirror

set grid ytics lt 0 lw 1 lc rgb "#bbbbbb"

set style data histogram
set style histogram rowstacked
set style fill solid border -1
set boxwidth 0.75

plot "timings.tsv" using 2:xticlabels(1) , "" using 3, "" using 4

我得到以下结果:

histogram

是的,它不是折线图而是直方图(我需要表示每种方法的执行时间百分比)。我需要稍微不同的结果(相同的直方图,不是用盒子,而是用连接盒子顶部的线条和填充线条下方的线条),如下所示:

stacked line diagram - desired diagram

我知道 filledcurve 的方法的(例如,在那里描述 Creating a Filled Stack Graph in GNUPlot ),但在这种方法中,您需要明确地对值求和。

是否可以通过 gnuplot 绘制填充区域而不是框,例如将直方图转换为堆积折线图?

最佳答案

您确实需要明确地对值求和,但这不是大问题。您可以轻松编写脚本:

firstcol=2
cumulated(i)=((i>firstcol)?column(i)+cumulated(i-1):(i==firstcol)?column(i):1/0)
plot "file.dat" using 1:(cumulated(4)), "" using 1:(cumulated(3)), "" using 1:(cumulated(2))

关于charts - gnuplot - 绘制堆积折线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40487935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com