исключить строки из автомасштабирования в matplotlib - PullRequest
1 голос
/ 25 марта 2011

У меня есть несколько сложная задача построения графиков в matplotlib, для которой требуется - я думаю - функция autoscale (), которая исключает определенные построенные линии.

Встроенная функция autoscale_view () в matplotlib получает объединение всех bbox-ов оси, а затем масштабируется на основе этого. Я сделал неповторимый обзор, который добавляет к нему коэффициент запаса. Но оба определяют масштабирование на основе всех точек на оси. Я не хочу этого, так как хочу, чтобы некоторые точки жили в нижней границе.

Мне нужно сделать функцию автомасштабирования, в которой я делаю что-то вроде:

1) Получить строки, которые я хочу, и исключить те, которые я не делаю (я мог бы передать в аргумент exclude_lines). Какова функция для получения линий от оси? Я не смог его найти.

2) Получите bboxes для этих строк и используйте подход, аналогичный autoscale_view (). Как я могу получить bbox, связанный со строкой?

Мои 1 и 2 тоже могут быть совершенно неосновными - просто предполагаю подход, который я рассматривал.

1 Ответ

1 голос
/ 25 марта 2011
from matplotlib import pyplot as plt
plt.plot([1,2,3],[3,4,5])
plt.plot([2,3,4],[4,9,4])
ax = plt.gca()
l = ax.get_lines()[0]  # a line instance
p = l.get_path()
p.get_extents() # a bbox instance
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...