Форум сайта python.su
Здравствуйте. Возникла небольшая проблема при построении графиков с помощью matplotlib. При выводе кириллицы на графике появляются кракозябры. Настройку шрифтов сделал как здесь написано. Но проблема осталась. Я понимаю, что проблема в кодировке, но где ее искать и как исправлять не знаю, подскажите пожалуйста кто сталкивался.
>>> import matplotlib.pyplot as plt
>>> plt.plot([1,2,3])
[<matplotlib.lines.Line2D object at 0x01B4B1D0>]
>>> plt.title(u'Прямая линия')
<matplotlib.text.Text object at 0x01B5DC90>
>>> plt.show()
Офлайн
плохо искали ?
http://python.su/forum/viewtopic.php?id=4178
Офлайн
вот пишу как вы говорите:
>>> import matplotlib as mpl
>>> import matplotlib.pyplot as plt
>>> mpl.rcParams['font.sans-serif'] = 'DejaVu Sans'
>>> plt.plot([1,2,3])
[<matplotlib.lines.Line2D object at 0x01D003B0>]
>>> plt.title(u'Прямая линия')
<matplotlib.text.Text object at 0x01D14250>
>>> plt.show()
Офлайн
import os
import matplotlib.font_manager as fm
import matplotlib.pyplot as p
p.rcParams['text.usetex'] = False
path_to_skript = os.path.abspath(__file__)
path_to_skript = os.path.split(path_to_skript)[0]
fp1 = fm.FontProperties( fname = os.path.join(path_to_skript, 'arial.ttf' ))
...
figure = p.figure()
ax1 = figure.add_subplot(211)
ax1.set_title(u'Четные корни', fontproperties = fp1)
ax1.set_ylabel(u'Ось y', fontproperties = fp1)
Отредактировано (Окт. 24, 2010 12:41:35)
Офлайн
Извиняюсь, может я не так понял. В какой каталог надо скопировать шрифт? При выполнении кода интерпретатор выдает:
Traceback (most recent call last):
File "C:/Documents and Settings/kyzic/Рабочий стол/1.py", line 7, in <module>
path_to_skript = os.path.abspath(__file__)
NameError: name '__file__' is not defined
Офлайн
Это вариант для файла с исходным кодом, а не для интерпретатора.
Неужели так трудно набрать в Гугле “питон __file__”??
Офлайн
Это вариант для файла с исходным кодом, а не для интерпретатора.а что, файл с исходным кодом не подлежит интерпретации?
figure = p.figure()
ax1 = figure.add_subplot(211)
ax1.set_title(u'Четные корни', fontproperties = fp1)
ax1.set_ylabel(u'Ось y', fontproperties = fp1)
Офлайн
kyzicОК, не правильно выразился.
а что, файл с исходным кодом не подлежит интерпретации?
kyzicВ используемом Вами pyplot тоже где то должны задаваться свойства текста (параметр fontproperties), советую изучить документацию.
Вообщем путь указал. Но ничего не пойму в этом куске кода:figure = p.figure()
ax1 = figure.add_subplot(211)
ax1.set_title(u'Четные корни', fontproperties = fp1)
ax1.set_ylabel(u'Ось y', fontproperties = fp1)
Отредактировано (Окт. 24, 2010 17:08:37)
Офлайн
Самый простой способ русификации - изменение файла “C:\PythonXY\Lib\site-packages\matplotlib\mpl-data\matplotlib.conf”
непример так:
…
family = ‘tahoma’
…
Офлайн
commпоменял там все шрифты на arial. результат нулевой.
Самый простой способ русификации - изменение файла “C:\PythonXY\Lib\site-packages\matplotlib\mpl-data\matplotlib.conf”
непример так:
…
family = ‘tahoma’
…
Офлайн