2013-05-07 6 views
1

Я пытаюсь использовать gnuplot для просмотра некоторых профилирующих данных; У меня есть несколько файлов, каждый из следующего формата:Столбцовые гистограммы в gnuplot из нескольких файлов

file_runXX.dat: 
elapsed time, stage 
elapsed time, stage 

Например:

0 foo 
1 step_1 
1.5 step_2 
2.3 step_3 

и

0 bar 
0.75 step_1 
1.3 step_2 
2.1 step_3 

построить их, я использую:

set style data histogram 
set style histogram columnstack 
plot for [i=1:2] sprintf("%02d.log", i) using 1 

И я получаю график с двумя вертикальными полосами: at x = 0 У меня есть бар, идущий от y = 0 до y = 1, тогда y = 1 до y = 1,5 и y = 1,5 до y = 2,3. При x = 1 у меня есть те же данные из второго файла.

Два вопроса:

(а) Является ли это правильный способ сделать это (то есть, он работает, но есть что-то лучше?), И

(б) Как я могу установить xlabels читать «foo» и «bar» (см. столбец 2, строка 1, каждого файла)? Я пробовал общаться с using 1:xtic(2) или title columnheader и несколькими другими вариантами, но кажется, что он доступен только в том случае, если у меня есть один файл, содержащий обе метки времени (я не уверен, что могу это сделать, так как иногда у меня есть step 2a в одном файле, но а не в другом, да, я знаю, что это может означать, что цвета не будут одинаковыми между барами).

Благодаря

+0

Если вам не нравятся эти ответы, сообщите нам, почему. – user829755

+0

Извините, я был в отпуске на несколько дней. Это не жалоба. – Mikeage

ответ

1

или вы можете перенести данные :

#label step_1 step_2 step_3 
foo  1  1.5  2.3 
bar  .75  1.3  2.1 

... и затем используйте следующие команды:

set style data histograms 
set boxwidth .7 
set style histogram rowstacked 
plot for [COL=2:4] "all.dat" using COL:xticlabels(1) 

это добавляет легенды, которые вы можете подавить или настроить.

1

можно объединить все данные в одной вкладке разделенных файлов all.dat:

foo bar 
1 .75 
1.5 1.3 
2.3 2.1 

, а затем использовать следующие команды:

set style data histograms 
set style histogram columnstacked 
set boxwidth .7 
plot for [COL=1:2] "all.dat" using COL title columnhead 
+0

Фактически оба моих решения отвечают только на вопрос b. в отношении: один файл лучше, чем несколько файлов данных, потому что это делает очевидным несоответствие меток step_x. в исходном предложении вы можете удалить строку step_2 из одного файла, и данные все еще выглядят нормально, но сюжет может сломаться бесшумно. – user829755