Как мне позволить моему сюжету matplotlib выйти за пределы осей? - PullRequest
21 голосов
/ 28 марта 2012

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

image generated using matlab

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

eimage generated with matplotlib

Мне интересно, возможно ли получить такой же дисплей без необходимости увеличивать пределы оси y.

Ответы [ 3 ]

37 голосов
/ 28 марта 2012

Чтобы маркер показывался за осями, вы можете отключить отсечение. Это можно сделать с помощью ключевого аргумента в команде 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

1 голос
/ 28 марта 2012

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

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

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

0 голосов
/ 28 марта 2012

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

...