Найти - Пользователи
Полная версия: Использование кириллических символов на графиках matplotlib
Начало » Python для новичков » Использование кириллических символов на графиках matplotlib
1 2
kyzic
Здравствуйте. Возникла небольшая проблема при построении графиков с помощью 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()

увеличить
ОС: windows xp
Python: 2.6
Matplotlib: 1.0.0
asv13
плохо искали ?
http://python.su/forum/viewtopic.php?id=4178
kyzic
вот пишу как вы говорите:
>>> 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()
никаких изменений. что-то неправильно пишу?
Syao
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)
Разумеется, файл со шрифтами (arial.ttf) должен лежать в соответствующем каталоге. Поискать его можно в системных папках Винды.
kyzic
Извиняюсь, может я не так понял. В какой каталог надо скопировать шрифт? При выполнении кода интерпретатор выдает:
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
Syao
Это вариант для файла с исходным кодом, а не для интерпретатора.

Неужели так трудно набрать в Гугле “питон __file__”??
kyzic
Это вариант для файла с исходным кодом, а не для интерпретатора.
а что, файл с исходным кодом не подлежит интерпретации?
Вообщем путь указал. Но ничего не пойму в этом куске кода:
figure = p.figure()
ax1 = figure.add_subplot(211)
ax1.set_title(u'Четные корни', fontproperties = fp1)
ax1.set_ylabel(u'Ось y', fontproperties = fp1)
Я не то чтобы плохо знаю matplotlib, вообще только начал его изучать. Видимо придется довольствоваться латинскими надписями, т.к. такие пляски с бубоном ради только перемены шрифта (хотя в настройках матплотлаб я указал везде шрифт ариал) мне не под силу.
Syao
kyzic
а что, файл с исходным кодом не подлежит интерпретации?
ОК, не правильно выразился.
Это вариант для файла с исходным кодом, а не для работы в интерактивном режиме интерпретатора.
kyzic
Вообщем путь указал. Но ничего не пойму в этом куске кода:
figure = p.figure()
ax1 = figure.add_subplot(211)
ax1.set_title(u'Четные корни', fontproperties = fp1)
ax1.set_ylabel(u'Ось y', fontproperties = fp1)
В используемом Вами pyplot тоже где то должны задаваться свойства текста (параметр fontproperties), советую изучить документацию.
comm
Самый простой способ русификации - изменение файла “C:\PythonXY\Lib\site-packages\matplotlib\mpl-data\matplotlib.conf”
непример так:


family = ‘tahoma’
kyzic
comm
Самый простой способ русификации - изменение файла “C:\PythonXY\Lib\site-packages\matplotlib\mpl-data\matplotlib.conf”
непример так:


family = ‘tahoma’
поменял там все шрифты на arial. результат нулевой.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB