Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 23, 2010 20:50:57

kyzic
От:
Зарегистрирован: 2010-10-23
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование кириллических символов на графиках matplotlib

Здравствуйте. Возникла небольшая проблема при построении графиков с помощью 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



Офлайн

#2 Окт. 23, 2010 21:02:12

asv13
От:
Зарегистрирован: 2007-01-22
Сообщения: 130
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование кириллических символов на графиках matplotlib

Офлайн

#3 Окт. 23, 2010 21:10:22

kyzic
От:
Зарегистрирован: 2010-10-23
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование кириллических символов на графиках matplotlib

вот пишу как вы говорите:

>>> 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()
никаких изменений. что-то неправильно пишу?



Офлайн

#4 Окт. 24, 2010 12:37:30

Syao
От:
Зарегистрирован: 2009-11-15
Сообщения: 43
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование кириллических символов на графиках matplotlib

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) должен лежать в соответствующем каталоге. Поискать его можно в системных папках Винды.



Отредактировано (Окт. 24, 2010 12:41:35)

Офлайн

#5 Окт. 24, 2010 13:19:58

kyzic
От:
Зарегистрирован: 2010-10-23
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование кириллических символов на графиках matplotlib

Извиняюсь, может я не так понял. В какой каталог надо скопировать шрифт? При выполнении кода интерпретатор выдает:

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



Офлайн

#6 Окт. 24, 2010 15:05:14

Syao
От:
Зарегистрирован: 2009-11-15
Сообщения: 43
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование кириллических символов на графиках matplotlib

Это вариант для файла с исходным кодом, а не для интерпретатора.

Неужели так трудно набрать в Гугле “питон __file__”??



Офлайн

#7 Окт. 24, 2010 15:52:27

kyzic
От:
Зарегистрирован: 2010-10-23
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование кириллических символов на графиках matplotlib

Это вариант для файла с исходным кодом, а не для интерпретатора.
а что, файл с исходным кодом не подлежит интерпретации?
Вообщем путь указал. Но ничего не пойму в этом куске кода:
figure = p.figure()
ax1 = figure.add_subplot(211)
ax1.set_title(u'Четные корни', fontproperties = fp1)
ax1.set_ylabel(u'Ось y', fontproperties = fp1)
Я не то чтобы плохо знаю matplotlib, вообще только начал его изучать. Видимо придется довольствоваться латинскими надписями, т.к. такие пляски с бубоном ради только перемены шрифта (хотя в настройках матплотлаб я указал везде шрифт ариал) мне не под силу.



Офлайн

#8 Окт. 24, 2010 17:07:57

Syao
От:
Зарегистрирован: 2009-11-15
Сообщения: 43
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование кириллических символов на графиках matplotlib

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), советую изучить документацию.



Отредактировано (Окт. 24, 2010 17:08:37)

Офлайн

#9 Окт. 24, 2010 17:28:14

comm
От:
Зарегистрирован: 2010-02-26
Сообщения: 23
Репутация: +  1  -
Профиль   Отправить e-mail  

Использование кириллических символов на графиках matplotlib

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


family = ‘tahoma’



Офлайн

#10 Окт. 24, 2010 17:38:05

kyzic
От:
Зарегистрирован: 2010-10-23
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование кириллических символов на графиках matplotlib

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


family = ‘tahoma’
поменял там все шрифты на arial. результат нулевой.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version