Горизонтальная гистограмма в гнуплоте

Я пытаюсь построить горизонтальную гистограмму в gnuplot.

Это моя текущая вертивальная (обычная) гистограмма:

width=0.5
hist(x,width)=width*floor(x/width)+width/2.0 
set boxwidth width*0.9
set style fill solid 0.5
plot "a" u (hist($2,width)):(1.0) smooth freq w boxes lc 3 notitle

Теперь мне нужен точно такой же результат, но повернутый на 90 градусов по часовой стрелке.

Я попробовал это ниже, но результаты на самом деле не то, что я ожидаю.

width=0.5
hist(x,width)=width*floor(x/width)+width/2.0 
set boxwidth width*0.9
set style fill solid 0.5
plot "a" u (1.0):(hist($2,width)) smooth freq w boxes lc 3 notitle
 Christoph15 янв. 2016 г., 14:38

Ответы на вопрос(3)

Благодарю. Это работает. Вот последовательный способ сделать все это. Сначала распечатайте обычный вывод файла данных в виде таблицы в другом файле, скажем, datatable.txt

reset    
binwidth=0.015    
bin(x,width)=width*floor(x/width) + binwidth/2.0    
set table    
set output 'datatable.txt'    
plot './datafile.txt' using (bin($1,binwidth)):(1.0) smooth freq w p    
unset table

set output "horizontalhist.png"    
pl './datatable.txt' u 2:1:(0.0):2:(($1)-(binwidth/2.0)):(($1)+(binwidth/2.0)) w boxxyerrorbars   

Это должно дать вам горизонтальные гистограммы.

Хотя в gnuplot еще нет общей поддержки горизонтальных графиков, вы можете создавать вполне приличные горизонтальные графики, используяboxxyerrorbars стиль. Он имеет 6 столбцов ввода (x, y, xlow, xhigh, ylow, yhigh). Вам просто нужно заранее рассчитать значения для ваших баров.

Я только что сделал что-то вроде этого ($ 2 относится к «центру»):

plot 'datafile.csv' using 'median':'center':'min':'max':($2-0.4):($2+0.4) with boxxyerrorbars

Если вы хотите, чтобы текстовые метки категорий располагались вдоль оси y, мы идем (я беру их из первого столбца в моем файле данных):

plot 'datafile.csv' using 'median':'center':'min':'max':($2-0.4):($2+0.4):ytic(1) with boxxyerrorbars

Если растровый вывод является единственной задачей, можно также использоватьconvert командованиеImageMagick набор после рендеринга гистограммы сgnuplot.

convert -rotate 90 figure_in.png figure_out.png

Перед этим поверните все метки внутриgnuplot сrotate директивы.

Примеры и дальнейшие детали предоставленыВот.

Ваш ответ на вопрос