2014-01-09 99 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是仅有无穷远点的第二个情节),并且您在营业!

我最近使用上述示例的一个修改后的形式来绘制一个点“在无穷远处”。我有这样做的代码,但它充满了对我的具体数据的引用,所以它可能对你有帮助,就像官方的例子。

相关问题