Найти - Пользователи
Полная версия: Matplotlib подписи по оси X
Начало » Python для новичков » Matplotlib подписи по оси X
1 2
Arven
Здравствуйте! Учусь писать на Питоне. Написала программу простую, вот она:
#!/usr/bin/env python

import pylab
from matplotlib import mlab
from pylab import figure, show

xmin = 0
xmax = 2
dx = 1

xlist = mlab.frange (xmin, xmax, dx)

ylist = [9213, 12683, 15203]


fig = figure()
ax = fig.add_subplot(111)
ax.autoscale_view()
ax.grid(True)

fig.autofmt_xdate()

pylab.plot (xlist, ylist)
show()
Объясните, пожалуйста, как сделать так, чтоб по оси X были не цифры, а даты? Например Oct'10, Nov'10, Dec'10 . Смотрела пример. Как-то очень замороченно… И не очень понимаю, как это прикрутить к моей проге.
doza_and
Точно не помню - но помоему просто достаточно чтобы xlist был массивом (numpy.array) объектов datetime.datetime()
asv13
import pylab
from pylab import figure, show
from datetime import datetime

time = [datetime(2011+i*2, 1, i+1) for i in range(3)]
ylist = [9213, 12683, 15203]
fig = figure()
ax = fig.add_subplot(111)
ax.autoscale_view()
ax.grid(True)
fig.autofmt_xdate()
pylab.plot(time, ylist)
show()
чтобы имзенить формат подписей даты надо указывать его напрямую:

ax.xaxis.set_major_formatter(pylab.DateFormatter('%d.%b.%Y'))
doza_and
Точно asv правильно написал
import pylab,datetime
pylab.plot([datetime.datetime(2011+i*2, 1, i+1) for i in range(3)], [9213, 12683, 15203])
pylab.show()
Arven
Большое спасибо!
Arven
Здравствуйте еще раз! Я опять с вопросами) В этом примере объясняется, как сделать указатель на определенную точку графика. Нужно указывать координаты точки xy=(0, 1).
ax.annotate('arrowstyle', xy=(0, 1),  xycoords='data',
xytext=(-50, 30), textcoords='offset points',
arrowprops=dict(arrowstyle="->")
)
Как мне быть, если у меня по оси X даты? Как узнать эту координату?
asv13
Arven
Как мне быть, если у меня по оси X даты? Как узнать эту координату?
У вас же есть исходные данные для графика. Вот из них и выбирайте определенную точку, вам виднее какую.

import pylab as pl
from datetime import datetime

time = [datetime(2011+i*2,1,i+1) for i in range(3)]
ylist = [9213, 12683, 15203]
fig = pl.figure()
ax = fig.add_subplot(111)
ax.xaxis.set_major_formatter(pl.DateFormatter('%d.%b.%Y'))
ax.annotate('This point!', xy=(time[1], ylist[1]), xycoords='data',
xytext=(-50, 30), textcoords='offset points',
arrowprops=dict(arrowstyle="->")
)
fig.autofmt_xdate()
pl.plot(time, ylist)
pl.show()
Arven
asv13, спасибо большое, у меня все получилось!
Arven
Объясните, пожалуйста, у меня на Убунте стоит версия интерпретатора 2.7.1. Я через Центр приложений установила интерпретатор 3.1. Но при запуске интерпретатора версия не поменялась. При этом, мой научный руководитель говорит мне, что моя программа запустилась у него под 2.6. В общем я запуталась окончательно. И еще, как он посмотрел, на чем у него запустилась программа?
doza_and
1 питонов может стоять много
2 грузится старый питон
3 первая строка на экране при запуске интерпретора python 2.6.6…. тоже самое в ответ на help()
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