Как вы строите гистограммы в gnuplot? - PullRequest
91 голосов
/ 29 ноября 2008

Как вы строите гистограммы в gnuplot с текстовыми метками?

Ответы [ 5 ]

110 голосов
/ 19 июля 2012

Простая гистограмма:

bar graph

set boxwidth 0.5
set style fill solid
plot "data.dat" using 1:3:xtic(2) with boxes

data.dat:

0 label       100
1 label2      450
2 "bar label" 75

Если вы хотите по-разному оформить свои бары, вы можете сделать что-то вроде:

multi color bar graph

set style line 1 lc rgb "red"
set style line 2 lc rgb "blue"

set style fill solid
set boxwidth 0.5

plot "data.dat" every ::0::0 using 1:3:xtic(2) with boxes ls 1, \
     "data.dat" every ::1::2 using 1:3:xtic(2) with boxes ls 2

Если вы хотите сделать несколько баров для каждой записи:

data.dat:

0     5
0.5   6


1.5   3
2     7


3     8
3.5   1

Gnuplot:

set xtics ("label" 0.25, "label2" 1.75, "bar label" 3.25,)

set boxwidth 0.5
set style fill solid

plot 'data.dat' every 2    using 1:2 with boxes ls 1,\
     'data.dat' every 2::1 using 1:2 with boxes ls 2

barchart_multi

Если вы хотите быть хитрым и использовать некоторые хитрые трюки с gnuplot:

Gnuplot имеет псевдо-столбцы, которые можно использовать как указатель для цвета:

plot 'data.dat' using 1:2:0 with boxes lc variable

barchart_multi2

Далее вы можете использовать функцию, чтобы выбрать нужные цвета:

mycolor(x) = ((x*11244898) + 2851770)
plot 'data.dat' using 1:2:(mycolor($0)) with boxes lc rgb variable

barchart_multi3

Примечание: вам нужно будет добавить пару других основных команд, чтобы получить тот же эффект, что и у образцов изображений.

24 голосов
/ 29 ноября 2008
plot "data.dat" using 2: xtic(1) with histogram

Здесь data.dat содержит данные вида

title 1
title2 3
"long title" 5
13 голосов
/ 05 апреля 2011

Я рекомендую Perl скрипт генератора гистограмм Дерека Брюнинг. Доступный в http://www.burningcutlery.com/derek/bargraph/

12 голосов
/ 08 апреля 2016

Я просто хотел бы остановиться на верхнем ответе, который использует GNUPlot для создания гистограммы, для абсолютных новичков, потому что я прочитал ответ и все еще был озадачен потопом синтаксиса.

Начнем с написания текстового файла команд GNUplot. Давайте назовем это command.txt:

 set term png

 set output "graph.png"

 set boxwidth 0.5

 set style fill solid

 plot "data.dat" using 1:3:xtic(2) with boxes

set term png установит GNUplot для вывода файла .png, а set output "graph.png" - имя файла, в который будет выводиться.

Следующие две строки говорят сами за себя. Пятая строка содержит много синтаксиса.

plot "data.dat" using 1:3:xtic(2) with boxes

"data.dat" - это файл данных, с которым мы работаем. 1:3 указывает, что мы будем использовать столбец 1 data.dat для x-координат и столбец 3 data.dat для y-координат. xtic() - это функция, которая отвечает за нумерацию / маркировку оси X. xtic(2), следовательно, указывает, что мы будем использовать столбец 2 data.dat для меток.

«data.dat» выглядит так:

 0 label       100

 1 label2      450

 2 "bar label" 75

Чтобы построить график, введите gnuplot commands.txt в терминале.

1 голос
/ 25 января 2019

Вы можете напрямую использовать гистограммы стилей, предоставляемые gnuplot. Это пример, если у вас есть два файла на выходе:

set style data histograms
 set style fill solid
 set boxwidth 0.5
 plot "file1.dat" using 5 title "Total1" lt rgb "#406090",\
      "file2.dat" using 5 title "Total2" lt rgb "#40FF00"
...