26.04.2011

Gnuplot - строим 6 графиков/диаграмм в одной рабочей области

Так уж случилось, что понадобилось мне построить 6 диаграмм в одной рабочей области для сокращения размера статьи. Можно было бы все просто реализовать с помощью таблицы и расположить 6 диаграмм - каждая в ячейке. Но в моем случае реализовать так не получилось, так как нужно, что бы на каждой диаграмме было показано две независимые оси ординат. Насколько я знаю не в OOCalc  не в Excele такого сотворить нельзя (в Excele знаю, что можно построить график с двумя осями, а диаграмму не нашел). Поэтому пришлось разбираться с мануалом гнуплота. 

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

Вот результат работы скрипта.

Листинг скрипта:

#! /usr/bin/gnuplot 
#set terminal png enhanced font "/usr/share/fonts/truetype/msttcorefonts/times.ttf,10" crop
set terminal png enhanced font "Times New Roman,10" size 600,800 
set output "multiplot.png"
set size ratio 1
#set size 1,1
set origin 0,0
set xlabel "Час обробки, хв" 
set ylabel "Капілярність тканини, мм"
set y2label "Білизна тканини, %"
set ytics nomirror
set autoscale y2
set y2tics 10
#set my2tics 5
set autoscale y
#set mytics 5
set key outside center bottom
set grid
set key autotitle columnhead 
#set title offset character 0,-1
set style fill pattern
set style histogram clustered
set style data histograms
set style line 1 lc rgb 'black'
set style line 2 lc rgb 'black'
set style increment user
set multiplot layout 3,2 


# строим первую диаграмму
set title "Рис. 1. Показники якості підготовленої\n тканини, варіант обробки 1"
plot "8.csv" using 2:xtic(1) fill pattern 4, "8.csv" using 3:xtic(1) fill pattern 5 

# строим вторую диаграмму
set title "Рис. 2. Показники якості підготовленої\n тканини, варіант обробки 2"
plot "9.csv" using 2:xtic(1) fill pattern 4, "9.csv" using 3:xtic(1) fill pattern 5 

# строим третью диаграмму
set title "Рис. 3. Показники якості підготовленої\n тканини, варіант 3"
plot "10.csv" using 2:xtic(1) fill pattern 4, "10.csv" using 3:xtic(1) fill pattern 5 

# строим четвертую диаграму
set title "Рис. 4. Показники якості підготовленої\n тканини, варіант 4"
plot "11.csv" using 2:xtic(1) fill pattern 4, "11.csv" using 3:xtic(1) fill pattern 5 

# строим пятую диаграму
set title "Рис. 5. Показники якості підготовленої\n тканини, варіант 5"
plot "12.csv" using 2:xtic(1) fill pattern 4, "12.csv" using 3:xtic(1) fill pattern 5 

# строим шестую диаграму
set title "Рис. 6. Показники якості підготовленої\n тканини, варіант 6"
plot "13.csv" using 2:xtic(1) fill pattern 4, "13.csv" using 3:xtic(1) fill pattern 5 

unset multiplot

Листинг одного из файлов данных:

? Білизна Капілярність
0 82 33
0.5 82 34
1 82 28
5 82 45
15 81 75
20 80 80