imshowグラフの選択した領域にカスタムパターンを配置する方法はありますか?正確には、数値データを運ぶ色付きの正方形に加えて、他の正方形のパターンが異なることで、実験の失敗モードが異なることを示すようにする必要があります(また、これらの意味を説明するキーを生成します)異なるパターン)。有用なパターンの例は、さまざまなタイプのクロスハッチです。グラフの主な色と数値のデータの関係を乱すことなく、これを実行できる必要があります。
以下は、回答で提案されたものを使用するための私の試みからのコードです。エラーセクションにコメントすると、マスキングからのデータがない場合は常に、imshowが空白で正常に表示されます。私は、さまざまな障害タイプに対してさまざまな種類のハッチングを実行しようとはしていません。また、シミュレーションまたは実験のいずれかが機能したが、もう一方はまだ機能しなかった場合に対処しようとはしていません。
EDIT3:マルチプロセッシングパッケージから、オブジェクトを「ピクルスにできない」というエラーマッサージを受け取っています。プログラムにより、これはマルチプロセッシングパッケージを通過する一部です。これを修正する方法、またはadd_patchesなしで実行する方法はありますか(プロットは完全に異なる座標系で行われ、接続線を描画するため、以下に提案するプロット方法は機能しません)?
import numpy as np
import matplotlib.patches as patches
...
grid = np.ma.array(grid, mask=np.isnan(grid))
plot.imshow(grid, interpolation='nearest', aspect='equal', vmax = private.vmax, vmin = private.vmin)
if show_fail and faildat != []:
faildat = faildat[np.lexsort((faildat[:,yind],faildat[:,xind]))]
fails = []
for i in range(len(faildat)):
fails.append((faildat[i,1],faildat[i,0]))
for F in fails:
p = patches.Rectangle(F,1,1,hatch='/',fill=False)
plot.add_patch(p)
plot.minorticks_off()
plot.set_xticks(range(len(placex)))
plot.set_yticks(range(len(placey)))
plot.set_xticklabels(placex)
plot.set_yticklabels(placey, rotation = 0)
plot.colorbar()
plot.show()