2016-05-01 3 views
0

を含むベースマッププロットにカラーバーの凡例を追加します。今私は画像の隣に凡例(カラーバー)を追加しようとしていますが、動作させることはできません。これまでのコードです:は私が前に計算されたインデックスによる着色、1枚のキャンバスに複数のシェープファイルを描画するためにベースマップを使用している複数のシェープファイル

from mpl_toolkits.basemap import Basemap 
import matplotlib.pyplot as plt 

# Floats between 0 and 20 
indexList = [*Previously calculated indices*] 
minIndex = min(indexList) 
maxIndex = max(indexList) 

# Figure out colors for each index 
norm = matplotlib.colors.Normalize(vmin=minIndex, vmax=maxIndex, clip=True) 
mapper=cm.ScalarMappable(norm=norm, cmap='RdYlBu') 

for key in indexList 
    gridIndexDict[key] = mapper.to_rgba(indexList[key]) # 

# Map to draw on, minX etc. won't interest here 
m = Basemap(projection='merc', lat_0=(minX+maxX)/2, lon_0 = (minY+maxY)/2, 
    resolution='h', area_thresh=0.1,llcrnrlon=minX, llcrnrlat=minY, 
    urcrnrlon=maxX, urcrnrlat=maxY) 

# Yes, that's 1000 shapefiles 
for i in range(0, 40): 
    for j in range(0, 25): 
     path = "Some path using i and j" 
     m.readshapefile(path, "Title", color=gridIndexDict["Key using i and j"]) 

### 
# I think this is the place to add a colorbar legend? 
### 
plt.show() 

基本的に私は、以前に決定された色でシェイプファイルを読み込んでペイントするために2つのループを使用しています。個々のシェイプファイルは正しい色で塗りつぶされていますが、カラーバーにも表示されません。

私はドキュメンテーションと例を挙げて掘るしようと時間を費やしてきましたが、動作するように何かを得ることができませんでした。 たぶん、あなたのいくつかは、これで私を助けることができますか?あなたにもっと情報を提供する必要があるかどうか私に教えてください。 `

mapper.set_array(indexList) 
plt.colorbar(mapper) 

が動作するだけでなく、

fig = plt.gcf() 
mapper.set_array(indexList) 
fig.colorbar(mapper) 
+1

' fig.colorbar(マッパー): – tacaswell

+0

は私にエラーを与える:名前 'fig'が定義されていません。 – Verzweifler

+0

あなたは、元 '図= plt.gcf()で作業しているあなたの姿への参照を取得する必要があります' – tacaswell

答えて

1

は@tcaswellを代表して、私はこの彼の代わりに返事を書くのか?
関連する問題