Некоторое время назад я попробовал gnuplot-py, но у меня были некоторые ограничения, которые мешали мне заключать сделки.Из-за этого я решил написать свою собственную оболочку gnuplot, используя python.Его можно найти по адресу:
http://sourceforge.net/projects/pygnuplot/
Я думаю, что это довольно хорошо.Вот базовый скрипт для построения графика:
#!/usr/bin/python2.7 -tt
# coding: utf-8
import pyGnuplot
from datetime import datetime
out_file = 'test.png'
out_file_str = 'set out "'+out_file+'"'
#example of chart with options and data
data = (('10-02-2012 18:00:36', '33.547'),
('10-02-2012 18:01:06', '23.962'),
('10-02-2012 18:04:06', '18.071'),
('10-02-2012 18:35:36', '13.513'),
('10-02-2012 18:47:06', '23.869'),
('10-02-2012 18:51:06', '13.988'),
('10-02-2012 18:56:06', '5.869'),
('10-02-2012 18:56:36', '3.811'),
('10-02-2012 18:59:36', '4.01'))
ytics = 10
#When str(datatime.datatime), the format is %Y-%m-%d %H:%M:%S, so that
# is the format pyGnuplot uses by default -- Of course the format you use
# to create datetime objects is up to you.
start_range = '"2012-02-10 18:00:00"'
end_range = '"2012-02-10 19:00:00"'
xrange = ( start_range, end_range)
# yrange = ( 0, 50 )
tvals,yvals=zip(*data)
tvals=[datetime.strptime(i, '%d-%m-%Y %H:%M:%S') for i in tvals]
print str(tvals[0])
print tvals
print yvals
g = pyGnuplot.gnuplot(debug=1)
g('set xdata time')
g('set timefmt "%Y-%d-%m %H:%M:%S"') #Default datatime output format.
set_xformat = 'set format x "%H:%M\\n%d.%m"'
g(set_xformat)
set_yformat = 'set format y "%.0f"'
g(set_yformat)
set_yticformat = 'set ytics format "%.0f"'
g(set_yticformat)
g('set ytics out nomirror')
g('set grid xtics ytics mxtics mytics')
g('set xtics axis out scale 1.0,0.1 nomirror')
g('set key out horiz')
g('set key center')
g('set key bmargin')
set_ytics = 'set ytics ' + str(ytics)
g(set_ytics)
y_range = (0, 100)
plt=g.plot(yvals,xvals=tvals,u="1:3")
plt.xrange(xrange)
plt.yrange(y_range)
g.show(plt) #Show the plot in the gnuplot default terminal
g.hardcopy(plt,file='myfile.png',size='780,464',truecolor=True) #Make a hardcopy
print g.readlines() #Get any script error messages from gnuplot
pyGnuplot, возможно, мог бы использовать лучшую документацию, которая есть в моем списке TODO, но у меня не было тонны времени, чтобы сделать это.* Кроме того, я использовал pyGnuplot только в Linux и Mac, поэтому в настоящее время неизвестно, насколько хорошо он работает на других платформах.