Basemapバージョン1.0.7、matplotlib 2.0.2を搭載したUbuntu 16.4でPython 3.6.1 64ビット、Qt 5.6.2、PyQt5 5.6を使用しています。次のように、投影「cyl」を使用して basemap でcontourfを使用しようとすると、次のようになります。
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np
map = Basemap(projection='cyl',lat_0=45,lon_0=-100,resolution='c')
nlats = 73; nlons = 145; delta = 2.*np.pi/(nlons-1)
lats = (0.5*np.pi-delta*np.indices((nlats,nlons))[0,:,:])
lons = (delta*np.indices((nlats,nlons))[1,:,:])
wave = 0.75*(np.sin(2.*lats)**8*np.cos(4.*lons))
mean = 0.5*np.cos(2.*lats)*((np.sin(2.*lats))**2 + 2.)
x, y = map(lons*180./np.pi, lats*180./np.pi)
cs = map.contour(x,y,wave+mean,15,linewidths=1.5)
plt.show()
次のエラーが表示されます。
トレースバック (最新の呼び出しが最後):
ファイル ""、15 行目、cs = map.contour(x,y,wave+mean,15,linewidths=1.5) 内
ファイル「/home/gab/anaconda3/lib/python3.6/site-packages/mpl_toolkits/basemap/init .py」、521 行目、with_transform return plotfunc(self,x,y,data,*args,**kwargs )
ファイル「/home/gab/anaconda3/lib/python3.6/site-packages/mpl_toolkits/basemap/init.py」、3542行目、等高線 xx = x[x.shape[0]/2,:]
IndexError: 整数、スライス (
:
)、省略記号 (...
)、numpy.newaxis (None
)、および整数またはブール配列のみが有効なインデックスです
たとえば、投影「オルソ」を使用すると、このエラーは発生しません。このコードを Python 2.6 で問題なく実行できます。この質問は、回答されていないこの質問と同じようです。
何か案は?