2

我已经使用松弛方法计算了一些表示作为 x,y 函数的势的值。我想用颜色(不是线条)显示等高线图,但是matplotlib上的例子都是花哨的 3d 图。我有一个ufinal对象,它是一个二维 numpy 数组。我确实在 SO 上看到了一些不错的答案和非常好的图,但我无法将它们与我的数据一起正确使用。我能够使用示例绘制 3d 图,但这不是我需要的:

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')
4

2 回答 2

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)
于 2013-06-14T12:05:55.190 回答
-1

如果有人仍然感兴趣,我在这里找到了粒度(又名美观问题)的解决方案作为解决方案的一部分: matplotlib contourf plot 中的对称对数色标

于 2016-08-02T17:23:30.613 回答