【发布时间】:2015-08-02 05:53:54
【问题描述】:
这是我进入NumPy 世界的第一步。
事实上,目标是在 2-D 函数下方绘制为 3-D 网格:
N = \frac{n}{2\sigma\sqrt{\pi}}\exp^{-\frac{n^{2}x^{2}}{4\sigma^{2}}}
这可以在Matlab 中作为小菜一碟完成,下面是sn-p:
[x,n] = meshgrid(0:0.1:20, 1:1:100);
mu = 0;
sigma = sqrt(2)./n;
f = normcdf(x,mu,sigma);
mesh(x,n,f);
但血腥的结果太丑陋了,足以驱使我尝试Python 功能来生成科学图。
我搜索了一些东西,发现在Pyhton中达到上述标记的主要步骤可能是通过下面的sn-p获得的:
from matplotlib.patches import Polygon
import numpy as np
from scipy.integrate import quad
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
sigma = 1
def integrand(x,n):
return (n/(2*sigma*np.sqrt(np.pi)))*np.exp(-(n**2*x**2)/(4*sigma**2))
t = np.linespace(0, 20, 0.01)
n = np.linespace(1, 100, 1)
lower_bound = -100000000000000000000 #-inf
upper_bound = t
tt, nn = np.meshgrid(t,n)
real_integral = quad(integrand(tt,nn), lower_bound, upper_bound)
Axes3D.plot_trisurf(real_integral, tt,nn)
编辑:由于对 Greg 建议的更多调查给予了应有的关注,以上代码是最新的 sn-p。
这是生成的异常:
RuntimeError: infinity comparisons don't work for you
这似乎是指quad 调用...
你能帮我解决这个积分绘图问题吗?!...
最好的
【问题讨论】:
-
有一个 matplotlib 绘图包,它有点等同于 matplot。它有关于如何绘制数据的简单示例。谷歌搜索并绘制自己。如果您尝试使用任何其他软件包进行绘图,也可以发布。
-
@Versatile:谢谢你提到这一点,但正如我所说,我已经检查了样本,但大多数都是简单的案例,而不是二维积分函数......
标签: python numpy matplotlib plot