2016-07-26 6 views
2

私はcartopyとmatplotlibを使用してプロットを行っていますが、最近PlateCarree変換を使用していましたが、私はルイジアナが少し好きであったためにMercatorに変更しました。軸の範囲は、これはどのようなプロットであるこれらの点カートリスト変換を適用するとスキューが発生する

ax.set_extent([lon-offset-1, lon+offset+1, lat-offset, lat+offset]) 

を使用して設定された場合はスイッチに先立ち、私はコードlogo = matplotlib.image.imread('/Users/ian/Desktop/M.png') plt.imshow(logo, extent =(lon-offset -1 + .25, lon - offset + .75, lat - offset + .25, lat - offset + 1 + .75), zorder=35)

次の2行を使用して、左下隅に表示されるロゴを持っていましたPlateCarreeのように見えました。 enter image description here

メルカトルに切り替えた後、私はロゴを除いてうまくいっています。

plt.imshow(logo, extent =(lon-offset -1 +.25, lon - offset + .75, lat - offset + .25, lat - offset + 1 + .75), zorder=35, transform=ccrs.PlateCarree()) 

が、今のロゴは、その鮮明さを失って変換して斜めになって、最も神秘的に、それが切り替わったコーナーました:私は、今では読み込み、画像のプロットラインへの変換キーワード引数を追加しましたプロットの左上隅に移動します。これは次のようになります: enter image description here

この画像を歪ませることなく私のプロットの投影をどのように変更できますか?私が本当に必要とするのは、画像の角が変換座標系のプロットの隅にあることを確認することですが、画像の残りの部分は座標系から独立したままにしておきます。私はおそらくイメージを単独で別のサブプロットに入れ、メインプロットの上にそのサブプロットを直接配置しようと考えていました。しかし、かなり悪い解決策のように思える。ありがとう!

答えて

3

イメージロゴをデータ座標ではなく軸座標にプロットすると、より良い結果が得られる場合があります。これにはax.transAxes変換を使用し、軸座標(左下の[0、0]、右上の[1、1])で範囲を指定することができます。

関連する問題