AAABBBBAAAAACCAAAAAAAAABBBBABBBBB
但是以更美观和多彩的方式。我使用gnuplot,所以,如果有人知道gnuplot的技巧,那就太棒了。
原始数据的格式如下:
A 4
B 6
C 10
A 14
B 17
C 22
A 27
B 27
C 35
A 35
我制定的gnuplot脚本如下:
set terminal png enhanced
set style data histograms
set style histogram columnstacked
set output "timeline.png"
set xlabel "events"
set ylabel "min"
set auto x
set xtics 1
set key top left
set boxwidth 0.5 relative
set style fill solid 0.6 border -1
plot 'timeline.txt' using 2 t "execution"
在上面的数据上运行此脚本后,我得到以下图:
我想:1)根据第一列上的字母重复颜色,2)直方图是水平的,一维图。
感谢您的帮助。
答案 0 :(得分:2)
这样的事情怎么样:
sum=0
cum_sum(x)=(sum=sum+x,sum-x/2)
set yrange [-1:2]
set xrange [0:*]
unset ytics
set style fill solid
plot 'test.dat' using (cum_sum($2)):(1.0):($2):($0) w boxes t "execution" lc variable
这是一个基于标签对盒子进行着色的版本(我不得不承认,我为这个黑客感到非常自豪):
sum=0
cum_sum(x)=(sum=sum+x,sum-x/2)
set yrange [-1:2]
set xrange [0:*]
unset ytics
set style fill solid
LABELS="ABCD"
plot 'test.dat' using (cum_sum($2)):(1.0):($2):(strstrt(LABELS,strcol(1))) w boxes t "execution" lc variable
如果您想控制特定标签获得的颜色,您需要使用set style line X lc rgb 'cyan'
X
字符串中以索引LABELS
开头的标签将为cyan
{ {1}}。