Подтвердить что ты не робот

Как мне позволить мой график matplotlib выйти за пределы осей?

Мне нужно перевести графическое изображение script с matlab на matplotlib/pylab, и я пытаюсь добиться того же эффекта, что и изображение matlab ниже:

image generated using matlab

Как вы можете видеть, порядок z графиков кажется выше, чем z-порядок сетки, поэтому маркеры не спрятаны осями. Тем не менее, я не могу найти способ сделать то же самое с моим изображением matplotlib:

eimage generated with matplotlib

Мне интересно, можно ли получить один и тот же дисплей, не увеличивая границы оси y.

4b9b3361

Ответ 1

Чтобы маркер отображался за осями, вы можете отключить обрезку. Это можно сделать, используя аргумент ключевого слова в команде plot clip_on=False.

Например:

import matplotlib.pyplot as plt
plt.plot(range(5), range(5), 'ro', markersize=20, clip_on=False, zorder=100)
plt.show()

enter image description here

Ответ 2

Это полный пример использования zorder kwarg: http://matplotlib.sourceforge.net/examples/pylab_examples/zorder_demo.html
Обратите внимание, что более высокий z-порядок приравнивается к тому, что элемент графа больше на переднем плане.

Для вашего второго вопроса посмотрите на figsize kwarg на экземпляры класса Figure: http://matplotlib.sourceforge.net/api/figure_api.html?highlight=figsize#matplotlib.figure.Figure

Если у вас возникли проблемы, отправьте часть своего кода, и мы сможем дать более подробные рекомендации. Удачи.

Ответ 3

Если вы рисуете строки один за другим, просто измените порядок вызовов по графику и это исправит порядок z.