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)
' fig.colorbar(マッパー): – tacaswell
は私にエラーを与える:名前 'fig'が定義されていません。 – Verzweifler
あなたは、元 '図= plt.gcf()で作業しているあなたの姿への参照を取得する必要があります' – tacaswell