Як ви можете побудувати штрихові діаграми в gnuplot?


Відповіді:


122

Проста гістограма:

гістограма

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

Якщо ви хочете по-різному стилізувати свої бари, ви можете зробити щось на кшталт:

багатобарвна гістограма

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 має psuedo-стовпці, які можна використовувати як індекс для забарвлення:

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

Примітка. Вам потрібно буде додати ще пару основних команд, щоб отримати той самий ефект, що і зразкові зображення.


Для багатьох застосувань зручніше використовувати histogramстиль графіки, особливо для групування та складання значень.
Крістоф

@Christoph Привіт, якщо я хочу додати ключ для цього типу графіка? що я повинен зробити ? Наприклад, якщо я хочу додати ключ, який каже, що синя лінія - "зима", а червона - "літо"
алекс

1
@alex Не впевнений, який із усіх прикладів ви маєте на увазі: у lc rgb variableвас не може бути різних ключових записів.
Крістоф

З будь-якої причини мені довелося використовувати директиву «notitle» після кожного пункту сюжету, щоб перекрити легенду про те, що з'явилося.
chinnychinchin

25
графік "data.dat", використовуючи 2: xtic (1) з гістограмою

Тут data.dat містить дані форми

назва 1
назва2 3
"довга назва" 5

17

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

Почнемо з написання текстового файлу команд GNUplot. Давайте називатимемо його командами.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термінал.



2

Ви можете безпосередньо використовувати гістограми стилів, надані 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"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.