2012-12-19 89 views
2

我试图用contourf使用此功能来绘制一些数据:matplotlib彩条平滑

cmap = mpl.cm.jet 
norm = mpl.colors.Normalize(vmin=min(zi), vmax=max(zi)) 
ax = plt.contourf(xi, yi, zi, N=20, norm=norm, cmap=cmap) 
plt.colorbar(ax) 

我得到的彩条是这一个:

alt text

不过,我想有颜色条更多的梯度如下:

alt text

它有可能吗?我尝试在轮廓函数中添加N = 50,但它没有帮助。

回答

2

在颜色映射级数将是相同的号码在轮廓的水平。您的问题是,您无法将N作为关键字传递给contourf,它将被忽略。试试这个:

ax = plt.contourf(xi, yi, zi, 50, norm=norm, cmap=cmap) 
plt.colorbar(ax) 
2

您需要的水平参数添加到contourf:

ax = plt.contourf(xi, yi, zi, N=20, norm=norm, 
     cmap=cmap,levels=np.linspace(zi.min(),zi.max(),1000)) 
+0

添加等级意味着'N'被忽略。但在您的示例中,它已被忽略,因为它被指定为关键字。 – tiago