所以我有一个底图,顶部有一个colormesh,另一个设置为cbar的颜色条。我希望colorbar方向是水平而不是垂直,但是当我在extend ='max'之后的cbar = m.colorbar行中设置orientation ='horizontal'时,我得到以下错误:“colorbar()获得了多个值关键字参数'orientation'“
有人在另一个问题上解释了为什么会发生这种情况,但老实说我无法理解答案或看到如何解决问题的解释。有人可以帮忙吗?我尝试使用plt.colorbar,但由于某些原因不接受我的刻度设置。
这是我之前的情节......
#Set cmap properties
bounds = np.array([0.1,0.2,0.5,1,2,3,4,6,9,13,20,30])
norm = colors.LogNorm(vmin=0.1,vmax=30) #creates logarithmic scale
#Create basemap
fig = plt.figure(figsize=(15.,10.))
m = Basemap(projection='cyl',llcrnrlat=-90,urcrnrlat=90,llcrnrlon=0,urcrnrlon=360.,lon_0=180.,resolution='c')
m.drawcoastlines(linewidth=1)
m.drawcountries(linewidth=1)
m.drawparallels(np.arange(-90,90,30.),linewidth=0.3)
m.drawmeridians(np.arange(-180.,180.,90.),linewidth=0.3)
meshlon,meshlat = np.meshgrid(lon,lat)
x,y = m(meshlon,meshlat)
#Plot variables
trend = m.pcolormesh(x,y,lintrends_36,cmap='jet', norm=norm, shading='gouraud')
#Set plot properties
plt.tight_layout()
#Colorbar
cbar=m.colorbar(trend, size='3%',ticks=bounds,extend="max") #THIS LINE
cbar.set_label(label='Linear Trend (mm/day/decade)',size=30)
cbar.set_ticklabels(bounds)
#Titles & labels
plt.suptitle('Linear Trends of Precipitation (CanESM2)',fontsize=40,y=0.962)
plt.title('a) 1979-2014',fontsize=40)
plt.ylabel('Latitude',fontsize=30)
plt.show()
地图看起来像这样。
答案 0 :(得分:4)
您需要使用location=bottom
cbar=m.colorbar(trend, size='3%',ticks=bounds,extend="max",location=bottom)
我从底图文档中的this示例获得了这个。
答案 1 :(得分:3)
正如其他人已经在评论中所述
plt.colorbar(orientation='horizontal')
是一种替代(更简单)的解决方案!