Форум сайта python.su
0
Строю график в котором по оси X даты. При этом название месяца отображается квадратиками вместо букв. Система Debian Lenny 5, локаль utf8, python 2.5.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import datetime
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([datetime.datetime(2010, 1, 1, 22, 0),\
datetime.datetime(2010, 2, 1, 22, 0)], [1.0, 2.0])
fig.autofmt_xdate()
plt.show()
Отредактировано (Фев. 6, 2011 10:11:24)
Офлайн
253
from matplotlib import rc
rc('font',**{'family':'verdana'})
rc('text.latex',unicode=True)
rc('text.latex',preamble='\usepackage[utf8]{inputenc}')
rc('text.latex',preamble='\usepackage[russian]{babel}')
Офлайн
0
from matplotlib import rc
rc('font',**{'family':'verdana'})
rc('text.latex',unicode=True)
rc('text.latex',preamble='\usepackage[utf8]{inputenc}')
rc('text.latex',preamble='\usepackage[russian]{babel}')
Офлайн
0
Для работы предложенного варианта нужен latex. Чтобы его не устонавливать, можно попробовать прописать пути к шрифтам в font_manager.py
Офлайн
0
Subideal OxЕсть Latex, прописал пути к шрифтам в font_manager.py. Пробовал по разному, может ему шрифт надо которого у меня нет?
Для работы предложенного варианта нужен latex. Чтобы его не устонавливать, можно попробовать прописать пути к шрифтам в font_manager.py
X11FontDirectories = [
# an old standard installation point
"/usr/X11R6/lib/X11/fonts/TTF/",
# here is the new standard location for fonts
"/usr/share/fonts/",
# documented as a good place to install new fonts
"/usr/local/share/fonts/",
# common application, not really useful
"/usr/lib/openoffice/share/fonts/truetype/",
"/usr/share/fonts/truetype/",
"/usr/share/fonts/truetype/freefont"
]
Офлайн
0
kt315eВ этом случае было бы здорово, если бы Вы привели сообщение об ошибке.
Есть Latex, прописал пути к шрифтам в font_manager.py. Пробовал по разному, может ему шрифт надо которого у меня нет?
X11FontDirectories = [
"/usr/share/fonts/truetype/msttcorefonts/",
"/usr/share/fonts/truetype/freefont/",
"/usr/share/fonts/truetype/ttf-dejavu/",
"/usr/share/fonts/truetype/ttf-liberation/",
"/usr/share/fonts/type1/gsfonts/",
"/usr/share/fonts/type1/mathml/",
"/usr/share/matplotlib/mpl-data/fonts/",
"/usr/share/matplotlib/mpl-data/fonts/ttf/",
"/usr/share/matplotlib/mpl-data/fonts/afm/",
"/usr/share/matplotlib/mpl-data/fonts/pdfcorefonts",
# an old standard installation point
"/usr/X11R6/lib/X11/fonts/TTF/",
# here is the new standard location for fonts
"/usr/share/fonts/",
# documented as a good place to install new fonts
"/usr/local/share/fonts/",
# common application, not really useful
"/usr/lib/openoffice/share/fonts/truetype/",
]
kt315eЕсли нет желания ковыряться в настройках, я бы месяцы выводил цифрами.
Как сделать чтобы по англиски писал?
Офлайн
0
Так нет сообщения об ошибке, всё работает, только вместо букв квадратики. Попробую ваши пути может по ним что надо лежит.
Если нет желания ковыряться в настройках, я бы месяцы выводил цифрами.
А как чтобы полная дата получилась?
Офлайн
0
kt315e'%Y-%m-%d'
А как чтобы полная дата получилась?
Офлайн
0
Загадочный код в http://matplotlib.sourceforge.net/examples/api/date_index_formatter.html
def format_date(x, pos=None):
thisind = np.clip(int(x+0.5), 0, N-1)
return r.date[thisind].strftime('%Y-%m-%d')
Офлайн
0
Сделал как здесь: http://matplotlib.sourceforge.net/examples/pylab_examples/date_demo1.html
#!/usr/bin/python
# -*- coding: utf-8 -*-
import datetime
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
from matplotlib.dates import DateFormatter
yearsFmt = DateFormatter('%Y-%m-%d')
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([datetime.datetime(2010, 1, 1, 22, 0),\
datetime.datetime(2010, 2, 1, 22, 0)], [1.0, 2.0])
ax.xaxis.set_major_formatter(yearsFmt)
fig.autofmt_xdate()
plt.show()
Офлайн