Автомасштаб Matplotlib

Я должен получить график, который соответствует данным автоматически с помощью matplotlib. Это - код, который мне дали:

import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection
....
lines = LineCollection(mpl.line_holder, colors=mpl.colorholder , linestyle='solid')
plt.axes().add_collection(lines)
plt.axes().set_aspect('equal', 'datalim')
plt.draw()
plt.show()

Это создает график, однако окно всегда является тем же (0-~. 8), каковы данные, даже если все данные за тем окном. Получающееся окно не имеет никакой способности уменьшить масштаб, только в, таким образом, это - основная проблема. Я не могу найти нигде, где любой вид калибровки установлен, и при этом II не может найти детали о том, каковы значения по умолчанию. Мне нужно окно для автоматической установки данным, но я не могу найти функцию, которая делает это (по некоторым причинам, autoscale_on (Верный) не делает этого). Данные крайне изменчивы, настолько устанавливающие жесткие пределы не опция. Как я могу заставить это отображаться правильно?

9
задан Elliot 9 July 2010 в 16:21
поделиться

2 ответа

Не уверен, что это то, что вы хотели, но я могу изменить его, если это не то, что вы искали.

import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection

import pylab as p

fig = plt.figure()
pts1 = []
pts2 = []
for i in range(100):
    pts1.append([i,i])
    pts2.append([-i-3,-i])
lines = LineCollection([pts1,pts2], linestyles='solid')
subplt = fig.add_subplot(111,aspect='equal')
subplt.add_collection(lines)
subplt.autoscale_view(True,True,True)
p.show()

Надеюсь, это поможет.

12
ответ дан 4 December 2019 в 15:11
поделиться

Загляните на сайт Эли Бендерски, а именно в этот пост. Пример в нижней части сообщения можно загрузить. Он позволяет установить, будет ли ось x следовать за графиком или останется статичной, в то время как ось y будет меняться вместе с данными.

1
ответ дан 4 December 2019 в 15:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: