マップに図柄を入れる
グレースケールの図を作ろうと思ってマップに図柄を入れる手続きを探したのだが、生憎見つからなかったので作ることにした。
多角形のハッチングなら
matplotlib.axes.Axes.add_patchと
matplotlib.patches.Polygonでできる(
ハッチング)。しかし私が描画したかったのは2次元のグリッドデータだったのでそれは適用できなかった。
これをグレースケールの図にしたい。

黒から白の色だけで分けると、4段階までなら色だけで行けると思うが、それ以上になると濃淡の区別が付かなくなって非常に見づらくなるのでハッチングが必要となる。
Scatter用の関数
coords_patch(mask, idens=6, west=0, east=360, south=-90, north=90)
plt.scatter()でのハッチング用の座標を取得する関数。戻り値は経度と緯度(いずれもfloatの配列)。
mask : 二次元配列(bool値)
idens: 点の密度の逆数。値が小さいほど点は密に配置される。1以上の整数
west, east, south, north: maskの緯度経度の範囲
Plot用の関数
coords_shade(mask, idens=6, style='u', west=0, east=360, south=south, north=north)
plt.plot()でのハッチング用の座標を取得する関数。戻り値は線の端点の経度と経度(いずれもfloatの配列)。
mask : 二次元配列(bool値)
idens: 点の密度の逆数。値が小さいほど点は密に配置される。1以上の整数
style: ハッチングのパターン('u', 'd', 'h', 'v', 'x', '+')
u: 左下から右上への斜線
d: 左上から右下への斜線
h: 水平の線
v: 鉛直の線
x: u+d
+: h+v
west, east, south, north: maskの緯度経度の範囲
Function coords_patch()
Function coords_shade()