Итак, есть данные, нужно построить график с двумя осями Y, т.е. фактически 2 графика в общей области - это удобно и наглядно для анализа некоторых данных.
В файлах цифры столбцов отделены друг от друга табом, это движок blogger его съедает.
Содержание файла grafik.csv
x c
0 100
4 73
5 63,2
6 62,4
8 62,9
24 33
Содержание файла grafik2.csv
x w
4 76,5
5 78
6 78,2
8 78,3
24 80
Содержимое командного файла plot.sh:
#! /usr/bin/gnuplot -persist
set terminal postscript eps enhanced color solid font "/usr/share/fonts/truetype/times.ttf" 14
set encoding koi8r
set output "plot.eps"
set terminal postscript enhanced "Times-Roman" 14
set size ratio 0.5
set xlabel "Время, часы"
set ylabel "Концентрация H_2O_2 на ткани, %" font "Times,18"
set y2label "Белизна, %"
set yrange [0:100]
set xrange [0:24]
set xtics ("4" 4,"5" 5,"6" 6,"8" 8,"24" 24)
set ytics nomirror
set ytics 5
set mytics 2
set y2tics 5
set my2tics 2
set grid
set autoscale y
set key at 10,12.10
plot "grafik.csv" using 1:2 smooth csplines notitle with lines lt -1,\
"grafik.csv" using 1:2 title "Концентрация H_2O_2 на ткани" with points pointsize 1 pointtype 7 lt -1,\
"grafik2.csv" using 1:2 smooth csplines notitle with lines lt -1,\
"grafik2.csv" using 1:2 title "Белизна" with points pointsize 1.5 pointtype 13 lt -1
Все было бы чудесно, но вот только в Ubuntu и в большинстве других современных дистрибутивах используется по умолчанию кодировка UTF8, с которой gnuplot вобще не дружит. Поэтому для того, что бы на графике корректно отображались надписи на руском нужно перекодировать скрипт в koi8-r:
iconv -f utf8 -t koi8-r plot.sh -o plot.koi.sh
это теоретически можно сделать и в vim командой
set fileencoding=koi8-r
однако у меня почему то vim на эту команду не реагирует :(
Запускаем скрипт, на выхлопе получаем файл plot.eps
который конвертируем в png:
convert -density 600 plot.ps -resize 400 testing.ps
Вот, что получается:

Время, затраченное на построение этого графика в gnuplot ~3-х часов! Однако здесь удалось отобразить по оси Х время пропорционально, как сделать так в Excel не знаю.
А теперь сравните с результатом в Excel (скриншот из VirtualBox):

Время, затраченное на построение этого графика в Excel ~15-ти минут!
В Microsoft Word качество отличается еще больше, чем заметно здесь, да это и понятно, график Excel в векторе.
Из OpenOffice Calc графики можно экспортировать в Excel путем сохранения рабочей книги в формате xls.
Вот исходный график, созданный в OpenOffice Calc:

А вот тот же график, открытый в Microsoft Excel:

Как видно, нарушилось расположение заголовка, в целом, оформление сохранилось в том же виде как и у исходного графика.
Не хочу ни оправдывать, ни ругать gnuplot, но если вы до этого с ним не работали, то не удивительно, что потратили столько времени. Есть такая шутка про win & lin:
ОтветитьУдалить"Чем отличаются пользователи линукс и виндоус?
Первые хорошо потрахаются и потом всю жизнь кайфуют, а вторые поставят, покайфуют месяц, а потом всю жизнь трахаются."
Так вот вы и получили этот самый вариант: не знаю gnuplot пришлось хорошенько повозится с ним поначалу. :) Потом, если вы и дальше будите им пользоваться, у вас будут уходить на все минуты и вы будите получать такие графики, какие в том же экселе не возможно получить в принципе.
Надеюсь excel у вас лицензионный, ибо время потраченное на отсидку будет равно ~2года
ОтветитьУдалитьда я не в претензии к гнуплоту - это профессиональный инструмент, требующий обучения работы с ним, главный раздражающий фактор для меня в гнуплоте это отсутствие поддержки utf8
ОтветитьУдалитьа с Excel работаю так как пока в силу обстоятельств не вижу замены, при этом приходиться работать в виртуальной машине, так как в wine и в crossover не все функции Excel работают корректно
А Вы в курсе про существование R? http://cran.r-project.org/
ОтветитьУдалитьТам множество систем графики.
про R знаю, пока не пробовал
ОтветитьУдалитьА utf8 не печатается из за постскрипта. Он увы не умеет, по крайней мере в виде ghostscript.
ОтветитьУдалитьтак если выставить терминал png все равно кирилица не выводится
ОтветитьУдалить...вряд ли писали свой растеризатор шрифтов.
ОтветитьУдалитьУж если вы заюзали эксель, то что вам помешало поюзать OO.o Calc?
ОтветитьУдалитьпоюзать OO.o Calc мешает то, что сдавать статьи приходиться в doc причем в разных редакциях разные версии МС офиса, поэтому, что бы избежать возвратов статьи или непредвиденных результатов в оформлении и использую эксель
ОтветитьУдалитьДанно гнуплотюсь - файл koi-8 не проблема gedit в любой кодировке работает даже cp-1251 (форточная). А вот другая проблема с издательствами - там сейчас одни придурки сидят кроме офиса ничего не знают, а про Tex вообще не слышали. Что поделаещь - живем в стране делитантов (В том числе и в здравоохранении). Так что ищите профессионалов и работайте только сними, так как лузер он самодостаточен и перевоститанию не подлнжит!
ОтветитьУдалитьС юникодом gnuplot прекрасно работает, нужно только указать ему подходящий шрифт. DejaVuSans, к примеру, или любой другой юникодный шрифт из вашей системы.
ОтветитьУдалитьПопробуйте qtiplot :)
ОтветитьУдалитьЕсли из проприентарщины - то лучший выбор - origin