2014-01-09 72 views
4

我從一些數據點繪製一條曲線:如何用matplotlib繪製f(x)作爲x走向無窮大?

points = [[0.0, 0.0], [1, 3], [3, 5]] 

...我希望它達到,也就是說,Y = 10爲x去無窮。換句話說,額外的「點」來追加將是:[float('inf'), 10]

有沒有辦法告訴matplotlib繪製曲線的最後一部分的漸近行爲?

Matplotlib無視float('info'),所以我想應該有另一種方式來做到這一點。

+0

可能的重複[如何處理與Matplotlib的漸近線/不連續](http://stackoverflow.com/questions/2540294/how-to-handle-an-asymptote-discontinuity-with-matplotlib) – jonrsharpe

+0

是的,我讀它,但我沒有得到任何三個答案。我如何將它們應用於我的問題? –

+0

'matplotlib'不會繪製無限值('np.inf'或'float('inf')',因爲這沒有意義!您可以嘗試使用大但非無限數字,例如'sys。 maxsize'。 – jonrsharpe

回答

4

你不能繪製無限的函數,因爲它不是一個數字。我認爲實現所需效果的唯一方法是使用一個斷開的軸,並將數據點繪製爲任意大的數字。一個例子如何做破碎的陰謀is available from the official matplotlib site.

基本思想是創建兩個邊界巧妙刪除的邊界,以便看起來像一個單一的情節,然後添加一些花哨的對角線,使其看起來像一個傳統的「破」情節。通過代入足夠多的數字(使曲線看起來正確),您可以將自己的無窮大數據點繪製在其自己的子圖中。然後,只需將tick重新標記爲無窮大(ax.set_xticks([large_number])ax.set_xticklabels(['\infty']),假設ax是僅有無窮遠點的第二個情節),並且您在營業!

我最近使用上述示例的一個修改後的形式來繪製一個點「在無窮遠處」。我有這樣做的代碼,但它充滿了對我的具體數據的引用,所以它可能對你有幫助,就像官方的例子。

相關問題