Matplotlib - 创建一个填充的2d等高线图

时间:2013-06-14 11:50:19

标签: python python-2.7 matplotlib plot

我使用松弛法计算了一些代表潜在函数的值作为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')

2 个答案:

答案 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