#!/usr/bin/env pytnonИ вот результат:
# vim: set fileencoding=utf-8 ts=4 sw=4 expandtab:
# Cyrillic letters in Matplotlib,
# thanks to Alexey for solution, see http://koldunov.net/?p=290#comments
from matplotlib import rc
rc('font',**{'family':'serif'})
rc('text', usetex=True)
rc('text.latex',unicode=True)
rc('text.latex',preamble='\usepackage[utf8]{inputenc}')
rc('text.latex',preamble='\usepackage[russian]{babel}')
from pylab import *
def figsize(wcm,hcm): figure(figsize=(wcm/2.54,hcm/2.54))
figsize(13,9)
x = linspace(0,2*pi,100)
y = sin(x)
plot(x,y,'-')
xlabel(u"ось абсцисс")
ylabel(u"ось ординат")
title(u"Две беды в России — синусы и косинусы!")
savefig('rus-mpl.pdf')

По теме:
Matplotlib. Простые вещи — 1
Matplotlib. Простые вещи — 2
Как построить график с изолиниями в gnuplot, gri и pylab
Короткие «рецепты» по применению Python в околонаучных целях
PS. Как, кстати, лучше PDF в растр конвертировать? Я делаю так:
$ pdftoppm -r 300 image.pdf | convert ppm:- image.png



А почему не просто convert?
ОтветитьУдалитьconvert image.pdf image.png
А мне кажется, что просто convert хуже шрифты отрисовывает. А может у меня просто что-то с ImageMagick не то :(
ОтветитьУдалитьУ меня почему-то при использовании usetex=True возникает проблема с сохранением файла. А именно, просмотр работает, а сохранить в векторный формат не удается. В случае pdf вываливается ошибка larm1440, а случае eps вот такая:
ОтветитьУдалитьps2pdf was not able to process your image.
\Here is the report generated by ghostscript:
Error: /undefined in --get--
Operand stack:
--nostringval-- --dict:9/18(ro)(L)-- 112 --dict:16/16(L)-- --dict:16/16(L)-- base
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1905 1 3 %oparray_pop 1904 1 3 %oparray_pop 1888 1 3 %oparray_pop 1771 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- %finish_stringwidth --nostringval-- --nostringval-- 14 8 0 --nostringval-- (pdf_text_enum_t) %op_show_continue --nostringval--
Dictionary stack:
--dict:1156/1684(ro)(G)-- --dict:1/20(G)-- --dict:96/200(L)-- --dict:5/6(ro)(L)-- --dict:182/300(L)-- --dict:44/200(L)-- --dict:8/17(L)-- --dict:51/90(L)--
Current allocation mode is local
Last OS error: 2
Current file position is 68539
Куда копать, не подскажете?
ghostscript:
ОтветитьУдалитьgs -dBATCH -dNOPAUSE -sDEVICE=pngwrite -r600 \
-sOUTPUTFILE=output.png input.pdf
где -rxxx - разрешение выходного файла.
если подать на вход многостраничный pdf и задать
-sOUTPUTFILE=output%03d.png
то на выходе получатся output001.png...output100.png
форматирование согласно спецификации C printf.
можно задавать разные устройства вывода, для jpeg, tiff
подробности см документацию по ghostscript
http://pages.cs.wisc.edu/~ghost/doc/svn/Devices.htm
http://pages.cs.wisc.edu/~ghost/doc/svn/Use.htm
Опечатка в первой строке, должно быть python вместо pytnon, а лучше python2
ОтветитьУдалить