2012-11-07 40 views
0

我用google搜索了一下,但找不到一个好的解决方案。我有事件的顺序:A,B和C随时间发生多次,我想如下有所绘制这个时间轴上:时间轴上的绘图序列

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" 

以上数据运行此脚本后,我得到的以下情节: Columnstacked histogram

我想要:1)基于第一列的字母重复的颜色和2)直方图b e水平的一维图。

感谢您的任何帮助。

回答

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',其中从LABELS字符串中的索引X开始的标签将被着色为cyan

+0

谢谢!我实际上想要用与事件发生的时间间隔相对应的大小的条来表示标签。非常像一个水平叠加直方图。 – Ketan

+0

非常喜欢此页面上的“库尔德工人聚会”部分:http://twiki.org/cgi-bin/view/Plugins/EasyTimelinePlugin – Ketan

+0

我用更多的输入更新了我的问题。谢谢你的时间。 – Ketan