Так уж случилось, что понадобилось мне построить 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

да, действительно, set title offset screen 0,-1 "Title" помещает Title внизу страницы (это и видно по координатам ), но к сожалению, только для рис. 1 и 2, остальные бесследно пропадают
ОтветитьУдалитьдумаю, если задавать вручную положение диаграмм на canvas, то можно было бы и поиграться с offset screen
в таком варианте set title offset screen 0,-0.333 "Рис. 2. Показники якості підготовленої\n тканини, варіант обробки 2"
ОтветитьУдалитьдобавил так для каждй подписи диаграммы,
не работает - нет никаких изменений
у меня все без изменений
ОтветитьУдалитькод скрипта http://dropmocks.com/mUV2p
результат http://dropmocks.com/mUXQb
оказалось, я не сохранил внесенные изменения :)
ОтветитьУдалитьвот что получилось
надписи для 1-4 есть, для 5-6 нет :(
попробовал увеличить размер холста до 1200 - не помогло
Наверное достаточно одного Рис № внизу страницы. Поставить его средствами редактора в котором написана статья. А у подрисунков метки, раскрытые в легенде. Штриховка тогда тоже может объяснятся один раз.
ОтветитьУдалитьИ почему не построить графики в R? :)
Используйте pgfplots и subfigure.
ОтветитьУдалить