の等高線図を作成します。これはQuadContourSet
オブジェクトを返します。私はmotion_notify_event
でマウスイベントを傍受しており、x
の値とy
の値をevent.xdata
とevent.ydata
にすることができます。 x
とy
のマウスカーソルの座標も、等高線図に対応する補間されたz
の値(返されたQuadContourSet
オブジェクト)を得ることは可能でしょうか?私は検索しましたが、QuadContourSet
に関する資料はあまりありません。または、元の配列z
の値から何とか手動で計算する必要がありますか?私はこれが、例えば対数スケールの軸などの一般的なケースではそれほど簡単ではないと思いますか?それとも、私を助けるヒントはありますか?matplotlib輪郭線補間されたz値
1
A
答えて
0
最後に、自分で値を補間する必要があります。直線の軸を使用している限り、非常に疎なグリッドであっても十分に正確に動作します。以下は、私の素朴な双線形補間の試みです。より良いアルゴリズムがある場合(scipyなどの他の依存関係なしで)、投稿してください。私はまだ対数軸でこれをテストしていません...
# note that z-data are indexed with pair (y, x) rather than (x, y)
pos = event.inaxes.transAxes.inverted().transform([event.x, event.y])
# relative coordinates in <0, 1>
rx = pos[0] * (self.__data.shape[1] - 1)
ry = pos[1] * (self.__data.shape[0] - 1)
# calculate the corner coordinates
rxLow, rxHigh = math.floor(rx), math.ceil(rx)
ryLow, ryHigh = math.floor(ry), math.ceil(ry)
# weights based on the distance
wxLow, wyLow = 1.0 - rx + rxLow, 1.0 - ry + ryLow
wxHigh, wyHigh = 1.0 - rxHigh + rx, 1.0 - ryHigh + ry
# adjust in case rxLow == rxHigh or ryLow == ryHigh
wx = wxLow + wxHigh
wy = wyLow + wyHigh
wxLow /= wx
wxHigh /= wx
wyLow /= wy
wyHigh /= wy
# get the corner data
z00 = self.__data[ryLow, rxLow]
z01 = self.__data[ryHigh, rxLow]
z10 = self.__data[ryLow, rxHigh]
z11 = self.__data[ryHigh, rxHigh]
# interpolate
zxLow = z00 * wyLow + z01 * wyHigh
zxHigh = z10 * wyLow + z11 * wyHigh
z = zxLow * wxLow + zxHigh * wxHigh # the interpolated value
関連する問題
- 1. matplotlib 3Dの輪郭線ラベル
- 2. Matplotlibの輪郭
- 3. メイクmatplotlibの輪郭プロットが
- 4. matplotlibの輪郭/輪郭**凹形の非グリッド化データ
- 5. Matplotlibの透明度の変更/輪郭線の削除
- 6. matplotlib輪郭入力配列の順番
- 7. ArcGIS 10のスプラインによる補間輪郭
- 8. Matplotlib - 異なる瞬間の特定の輪郭の凡例
- 9. 輪郭の重心から輪郭の周囲に線を引く方法は?
- 10. 地形図輪郭線抽出
- 11. R - 輪郭マップ
- 12. 輪郭抽出
- 13. OpenCV輪郭モーメント?
- 14. CSSの枠線/輪郭線の上に行く人
- 15. 輪郭線で最も長い線を描くOPENCV
- 16. 補間されたxとyの値のz値を返しますか?
- 17. 輪郭の歪み
- 18. Rエリアは輪郭
- 19. Matlab/Octaveの輪郭
- 20. 境界輪郭と共に円形でない輪郭の円結果のセグメント化された画像の
- 21. オーバーレイされた輪郭が画像+輪郭回転後に整列していません.warpAffine with OpenCV
- 22. 輪郭の一致 - 輪郭の変位の検出
- 23. Cannyの輪郭を輪郭に変換するOpenCV
- 24. 塗りつぶし輪郭プロットの輪郭のラスタライズ
- 25. matplotlibの輪郭から座標を取得しますか?
- 26. Matplotlib:輪郭のclabelを削除する方法
- 27. matplotlibのサーフェスの前に輪郭を表示
- 28. Matplotlib v0.99輪郭のあるサーフェス:zdirが機能しない
- 29. 地図の端からの輪郭線がベースマップに表示されない
- 30. 小さな隙間を描く円の輪郭スプライトキットスウィフト