2012-11-07 5 views
0

Я немного погуглил, но не смог найти подходящего решения. У меня есть последовательность событий: 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 горизонтальный, одномерный участок.

Спасибо за любую помощь.

ответ

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.

+0

Спасибо! Я действительно хотел представить метки с полосками размера, соответствующего временному интервалу, которое происходит. В значительной степени похож на горизонтальную гистограмму. – Ketan

+0

Очень понравилось в разделе «Рабочие партии Курдистана» на этой странице: http://twiki.org/cgi-bin/view/Plugins/EasyTimelinePlugin – Ketan

+0

Я обновил свой вопрос с большим количеством входов. Спасибо за ваше время. – Ketan

Смежные вопросы