2012-12-19 128 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