2017-01-30 3 views
1

Я новичок в использовании gnuplot, и я следил за this question, который отображает данные по своему желанию. Тем не менее, я очень хотел бы включить строки ошибок. Я пытался сделать это, добавив мин и макс ошибок столбцов следующим образом:Clustered bar plot in gnuplot с ошибками

Broswer,Video,min,max,Audio,min,max,Flash,min,max,HTML,min,max,JavaScript,min,max 
IE,30%,5,5,10%,5,5,25%,5,5,20%,5,5,15%,5,5 
Chrome,20%,5,5,5%,5,5,35%,5,5,30%,5,5,10%,5,5 

который я затем попытаться построить с помощью сценария модифицированного следующим образом:

set terminal pdf enhanced 
set output 'bar.pdf' 

set style data histogram 
set style histogram cluster gap 1 

set style fill solid border rgb "black" 
set auto x 
set yrange [0:*] 
set datafile separator "," 

plot 'data.dat' using 2:xtic(1) title col with yerrorbars, \ 
     '' using 3:xtic(1) title col with yerrorbars, \ 
     '' using 4:xtic(1) title col with yerrorbars, \ 
     '' using 5:xtic(1) title col with yerrorbars, \ 
     '' using 6:xtic(1) title col with yerrorbars 

Из того, что я понял из чтения это должно также построить errorbars, но я получаю сообщение об ошибке:

"plot2", line 16: Not enough columns for this style

погуглить эту ошибку сообщает мне, что у него есть что-то делать с первым столбцом, нечисленным. Я пробовал несколько предложений, включая this one, но пока ничего не получилось. Итак, какие-то предложения? Благодарю.

ответ

1

Эта ошибка говорит вам, что для стиля печати yerrorbars требуется более одного столбца для построения графика (xtic(1) занимает специальную часть). Если посмотреть на документацию, вы можете увидеть, что вы можете использовать два, три или четыре столбца. Я больше не разбираюсь в деталях, потому что with yerrorbars выбирает совершенно новый стиль построения, и вы не получаете никакой гистограммы вообще.

Для построения кластерные гистограмм, вы должны добавить errorbars для определения стиля гистограммы, и, конечно, вы должны дать столбец для значений yerror:

set style data histogram 
set style histogram cluster gap 1 errorbars 

set style fill solid border rgb "black" 
set auto x 
set yrange [0:*] 
set datafile separator "," 

plot 'data.dat' using 2:3:xtic(1) title col(2),\ 
     '' using 5:6 title col(5), \ 
     '' using 8:9 title col(8), \ 
     '' using 11:12 title col(11), \ 
     '' using 14:15 title col(14) 

Или, в более короткие записи

plot for [i=2:14:3] 'data.dat' using i:i+1:xtic(1) title col(i) 

enter image description here

Если вы явно нужно построить минимум и максимум значения, чем вы должны добавить третий столбец. Но тогда последние два столбца представляют собой значения ymin и ymax, а не дельта. Судя вас ошибка файла данных, значения в файле данных дельт, поэтому команда участок должен быть:

plot for [i=2:14:3] 'data.dat' using i:(column(i) - column(i+1)):(column(i) + column(i+2)):xtic(1) title col(i) 
+0

Так что я предполагаю, что это не возможно иметь мин/макс баров ошибок с помощью гистограммы ? Благодарю. – John

+0

Вы можете увидеть мое обновление. Я не был уверен, действительно ли вам нужны явные минимальные и максимальные значения, поэтому я сначала имею более легкую версию;) – Christoph

+0

Провел некоторое время, понимая цикл, но это прекрасно. Только то, что мне нужно! Благодаря!! – John