Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 31, 2009 16:07:53

hildi
От:
Зарегистрирован: 2008-10-07
Сообщения: 66
Репутация: +  0  -
Профиль   Отправить e-mail  

matplotlib: мильен непоняток (крайние значения шкал, типы данных, ...)

Не знаю, куда правильнее было писать - сюда или в ГУИ, но поскольку вопросы не слишком умные, пишу сюда :-)

Строим график (пример отсюда, слегка переделанный):




        import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid.parasite_axes import SubplotHost

utils = [17, 50, 30, 28, 14]
modems = [297, 299, 295, 297, 295]
kw = [29, 30, 31, 32, 33]

fig = plt.figure(1)

host = SubplotHost(fig, 111)
fig.add_subplot(host)

par = host.twinx()

host.set_xlabel("KW")
host.set_ylabel("UTILS")
par.set_ylabel("MODEMS")

#host.set_ylim(0, max(utils)) #на результат не влияет
#par.set_ylim(0, max(modems)) #на результат не влияет

#plt.xlim( min(kw), max(kw) ) # на результат не влияет


p1, = host.plot(kw, utils, label="UTILS")
p2, = par.plot(kw, modems, label="MODEMS")
Возникает куча вопросов:

1. Как правильно задать деления на шкалах Y? Нужно, чтобы шкалы показывали значения от 0 до max(utils)/max(modems), а не только, начиная с соответственно min(utils)/min(modems). Пробовала указать крайние значения (см. закомментированные строчки) - не помогло.
2. Как побороть числа с плавающей точкой в шкалах? В исходных списках только целые числа, а на шкалах отражаются дробные с шагом 0.5. И, заодно - как задать шаг для шкалы? В мануалах не нашла :-(
3. Как можно задать размер сгенерированного графика в пикселях?

Большущее спасибо всем!



Офлайн

#2 Сен. 1, 2009 15:07:26

hildi
От:
Зарегистрирован: 2008-10-07
Сообщения: 66
Репутация: +  0  -
Профиль   Отправить e-mail  

matplotlib: мильен непоняток (крайние значения шкал, типы данных, ...)

Вопросы 1 и 3 все еще имеют некоторую актуальность. Особенно вопрос 3 :-)



Офлайн

#3 Сен. 1, 2009 17:42:07

l.a.savar
От:
Зарегистрирован: 2009-06-10
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

matplotlib: мильен непоняток (крайние значения шкал, типы данных, ...)

по третьему пункту, возможно вместо :

fig = plt.figure(1)

нужно что-то вроде:

fig = plt.figure(num=1, dpi=300)



Офлайн

#4 Сен. 1, 2009 19:07:27

hildi
От:
Зарегистрирован: 2008-10-07
Сообщения: 66
Репутация: +  0  -
Профиль   Отправить e-mail  

matplotlib: мильен непоняток (крайние значения шкал, типы данных, ...)

Ага, я уже нашла: plt.savefig('/images/bla1.png', dpi = 64) :-)
Спасибо!



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version