Here the code
#!/usr/bin/env python
from pylab import figure, show
from matplotlib.dates import AutoDateLocator, AutoDateFormatter,
drange, DateFormatter
import datetime
import randomdates = drange(datetime.datetime(2010, 1, 1), datetime.datetime(2010,
12,31), datetime.timedelta(days = 1))
opens = map(lambda a: random.random(), dates)fig = figure()
ax = fig.add_subplot(111)
ax.plot_date(dates, opens, '-')majloc = AutoDateLocator()
majform = AutoDateFormatter(majloc)ax.xaxis.set_major_locator(majloc)
ax.xaxis.set_major_formatter(majform)
ax.autoscale_view()
ax.grid(True)
fig.autofmt_xdate()
show()
It is just the same code as date_demo1.py from examples directory with
some modifications
My current locale is ru_RU.UTF-8 and i want plot the date ruller along
X axis in format of my locale, with russian names of months.
I can not do this because of this error when printing the chart
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/matplotlib/backends/backend_gtk.py",
line 394, in expose_event
self._render_figure(self._pixmap, w, h)
File "/usr/lib/python2.7/site-packages/matplotlib/backends/backend_gtkagg.py",
line 75, in _render_figure
FigureCanvasAgg.draw(self)
File "/usr/lib/python2.7/site-packages/matplotlib/backends/backend_agg.py",
line 394, in draw
self.figure.draw(self.renderer)
File "/usr/lib/python2.7/site-packages/matplotlib/artist.py", line
55, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "/usr/lib/python2.7/site-packages/matplotlib/figure.py", line
798, in draw
func(*args)
File "/usr/lib/python2.7/site-packages/matplotlib/artist.py", line
55, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "/usr/lib/python2.7/site-packages/matplotlib/axes.py", line 1946, in draw
a.draw(renderer)
File "/usr/lib/python2.7/site-packages/matplotlib/artist.py", line
55, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "/usr/lib/python2.7/site-packages/matplotlib/axis.py", line 971, in draw
tick_tups = [ t for t in self.iter_ticks()]
File "/usr/lib/python2.7/site-packages/matplotlib/axis.py", line
907, in iter_ticks
majorLabels = [self.major.formatter(val, i) for i, val in
enumerate(majorLocs)]
File "/usr/lib/python2.7/site-packages/matplotlib/dates.py", line
486, in __call__
return self._formatter(x, pos)
File "/usr/lib/python2.7/site-packages/matplotlib/dates.py", line
336, in __call__
return self.strftime(dt, self.fmt)
File "/usr/lib/python2.7/site-packages/matplotlib/dates.py", line
362, in strftime
return cbook.unicode_safe(dt.strftime(fmt))
File "/usr/lib/python2.7/site-packages/matplotlib/cbook.py", line
41, in unicode_safe
else: return unicode(s, preferredencoding)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position
0: ordinal not in range(128)
When lauching this with LANG=C everythig works but datetime prints in
english locale.
Version of matplotlib is 1.0.1
What am i doing wrong ?