我使用松弛法计算了一些代表潜在函数的值作为x,y的函数。我想用颜色(不是线条)显示轮廓图,但是matplotlib的例子都是花哨的3d图。我有一个ufinal
对象,它是一个二维numpy数组。我确实在SO上看到了很好的答案,但我无法正确使用它们。我能够使用示例绘制三维图,但这不是我需要的:
fig = plt.figure()
ax = fig.gca(projection='3d')
X,Y=meshgrid(x,y)
surf=ax.plot_surface(X,Y,ufinal,rstride=1,cstride=1,cmap=cm.jet,linewidth=0.1)
fig.colorbar(surf,shrink=0.5,aspect=5)
正如我所建议的那样,我尝试使用了如下的contourf示例:
CS = plt.contourf(X, Y, ufinal,cmap=cm.jet)
plt.clabel(CS, inline=1, fontsize=10)
plt.title('Simplest default with labels')
答案 0 :(得分:3)
正如大卫所说,使用contourf
:
import numpy as np
import pylab as pl
x,y = np.mgrid[:1:1E-3,:1:1E-3]
xs = ((x-0.3)**2.)
ys = ((y-0.5)**2.)
z = np.exp(-1*(xs/0.5+ys/0.3))
pl.contourf(x,y,z,20)
答案 1 :(得分:-1)
如果有人仍然感兴趣我在这里找到了粒度(a.k.a. nice-looking-ness问题)的解决方案作为解决方案的一部分: Symmetrical Log color scale in matplotlib contourf plot