2012-03-28 162 views
13

我翻譯的圖像從MATLAB繪製腳本matplotlib/pylab,我試圖達到如下MATLAB圖像相同的效果:我該如何讓我的matplotlib繪圖超越座標軸?

image generated using matlab

正如你所看到的,Z順序的圖表似乎高於網格的z次序,所以標記不被軸線隱藏。但是,我不能想出一個辦法做同樣與我matplotlib圖像:

eimage generated with matplotlib

我想知道是否有可能得到相同的顯示,而無需增加y的極限軸。

+0

我相信你有很好的理由喜歡MATLAB的行爲,但軸外恕我直言繪製超過一個功能中的錯誤的。 – joaquin 2012-03-28 21:01:36

回答

30

要讓標記顯示在軸之外,您可以關閉裁剪。這可以使用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

+0

+1是!我相當肯定這是OP尋找的東西,但至少對我來說,這並不是那麼清楚 - 直到他對我的(不合格)答案發表評論。希望OP會接受這一個。感謝發佈。 – bernie 2012-03-28 20:51:39

+0

非常感謝!!!!!這正是我需要的! – nay 2012-03-29 18:05:08

+0

太棒了!正是我需要的。 – bretcj7 2017-04-26 20:19:20

1

這是如何使用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

如果您遇到的問題,請發表你的一些代碼,我們將能夠給更多 - 詳細的建議。祝你好運。

+0

謝謝,我會看看你寫下的2個鏈接。對於代碼,我認爲matplotlib的默認行爲是考慮如果點本身(這裏是例如0.2; 0)是可見的,那麼圍繞它的標記不完全可見就不是問題。這是我試圖改變的行爲 – nay 2012-03-28 18:18:51

+0

@nay:它看起來像tom10有你的問題的答案。快樂的編碼! – bernie 2012-03-28 20:56:34

+0

是的!非常感謝您的幫助=) – nay 2012-03-29 18:07:10

0

如果您依次繪製線條,只需更改繪圖調用的順序,即可修復z順序。

+0

感謝您的回答,實際上我想要做的是使圖的x次序高於網格本身的z次序,以便標記(例如在( 0.2; 0))變得像matlab圖像一樣完全可見。 – nay 2012-03-28 18:10:35

相關問題