Форум сайта python.su
Строю график в котором по оси 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)
Офлайн
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}')
Офлайн
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}')
Офлайн
Для работы предложенного варианта нужен latex. Чтобы его не устонавливать, можно попробовать прописать пути к шрифтам в font_manager.py
Офлайн
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"
]
Офлайн
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Если нет желания ковыряться в настройках, я бы месяцы выводил цифрами.
Как сделать чтобы по англиски писал?
Офлайн
Так нет сообщения об ошибке, всё работает, только вместо букв квадратики. Попробую ваши пути может по ним что надо лежит.
Если нет желания ковыряться в настройках, я бы месяцы выводил цифрами.
А как чтобы полная дата получилась?
Офлайн
kt315e'%Y-%m-%d'
А как чтобы полная дата получилась?
Офлайн
Загадочный код в 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')
Офлайн
Сделал как здесь: 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()
Офлайн