簡體   English   中英

pcolormesh()和contourf()不起作用

[英]pcolormesh () and contourf() do not work

尊敬的專家,我回到了大約兩個月前提出的問題,從那以后我一直在努力。 這涉及底圖上輪廓的疊加。 我看過很多例子,例如這里的例子: http : //nbviewer.ipython.org/github/Unidata/tds-python-workshop/blob/master/matplotlib.ipynb我以前的帖子,在這里: python中不規則網格上覆蓋地圖的輪廓 准備數據后,以下是繪制方法:

# Setting the plot size and text
fig = plt.figure(figsize=(10,8))

lev = [15, 20, 25, 30, 35, 40,45]
norm1 = colors.BoundaryNorm(lev, 256)

# Draw filled contours

# 1. pcolor does not show the filled contours 
#cs = plt.pcolor(x,y,zi, cmap = cm.jet, norm = norm1)

# 2. pcolormesh does not show the filled contours
#cs = plt.pcolormesh(x,y,zi, shading = "flat", cmap=cmap)

# 3. contourf does not show the filled contours
#cs = plt.contourf(xi, yi, zi) #, levels=np.linspace(zi.min(),zi.max(),5))
cs = plt.contourf(xi, yi, zi, cmap = cm.jet, levels = lev, norm = norm1)

# 4. Draw line contours with contour()
#cs = m.contour(x,y,zi,linewidths=1.2)              # This works

plt.scatter(data.Lon, data.Lat, c=data.Z, s=100,
            vmin=zi.min(), vmax=zi.max())           # Does not work at all

# Color bar
#cbar = m.colorbar(fig,location='right',pad="10%")
fig.colorbar(cs)

# Plot a title
plt.figtext(.5,.05,'Figure 1. Mean Rainfall Onset Dates',fontsize=12,ha='center')

plt.show()

抱歉,我無法發布情節示例,但是:

  • pcolorpcolormeshcontourf給出了一個沒有填充輪廓但帶有contourf的貼圖
  • 上面沒有地圖對象的地塊給出了包括散點圖的填充輪廓(沒有地圖背景)
  • 等高線給地圖加上等高線:

我很困惑,因為這是從上面引用的鏈接示例復制粘貼的示例。

關於該問題的可能原因的任何提示將不勝感激Zilore Mumba

與使用matplotlib.pyplot相比,您需要使用底圖來繪制輪廓。 請參閱我的示例以獲取一些代碼。

#Set basemap and grid
px,py=n.meshgrid(x,y)

m=Basemap(projection='merc',llcrnrlat=20,urcrnrlat=55,
   llcrnrlon=230,urcrnrlon=305,resolution='l')

X,Y=m(px,py)


#Draw Latitude Lines
#labels[left,right,top,bottom]  1=True 0=False
parallels = n.arange(0.,90,10.)
m.drawparallels(parallels,labels=[1,0,0,0],fontsize=10,linewidth=0.)

# Draw Longitude Lines
#labels[left,right,top,bottom]  1=True 0=False
meridians = n.arange(180.,360.,10.)
m.drawmeridians(meridians,labels=[0,0,0,1],fontsize=10,linewidth=0)

#Draw Map
m.drawcoastlines()
m.drawcountries()
m.drawstates()
m.fillcontinents(color='grey',alpha=0.1,lake_color='aqua')

#Plot Contour lines and fill
levels=[5.0,5.1,5.2,5.3,5.4,5.6,5.7,5.8,5.9,6.0]
cs=m.contourf(px,py,thickness,levels,cmap=p.cm.RdBu,latlon=True,extend='both')
cs2=m.contour(px,py,thickness,levels,latlon=True,colors='k')

#Plot Streamlines
m.streamplot(px,py,U,V,latlon=True,color='k')

#Add Colorbar
cbar = p.colorbar(cs)
cbar.add_lines(cs2)
cbar.ax.set_ylabel('1000 hPa - 500 hPa Thickness (km)')

#Title
p.title('Geostrophic Winds with Geopotential Thickness')


p.show()

我的身材

不知道您的數據看起來如何,很難回答您的問題,但是我還是會嘗試的。 您可能希望例如使用直方圖對數據進行網格化,然后對結果進行輪廓處理。

例如,如果您對繪制具有坐標( xy )和要用於顏色的第三個屬性( z )的點的2D輪廓感興趣,則可以嘗試一下

from numpy import *

H=histogram2d(x,y,weights=z)

contourf(H[0].T,origin='lower')

但是,就像我說的那樣,如果您不提供有關數據的詳細信息,就很難理解您要查找的內容。 請參閱matplotlib指南以獲取更多示例http://matplotlib.org/examples/pylab_examples/contourf_demo.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM