5

太平洋地域を強調できるように、プロットの下部に180を使用して、北半球の極心平射投影プロットをプロットしたいと思います。gitの最新のカートピーを使用しており、極心平射投影法のプロットを問題なく作成できますが、プロットの下部にある経度を変更する方法がわかりません。経度の範囲を[-180、180]に設定しようとしましたが、これは役に立ちません。また、NorthPolarStereo()はcentral_longitudeなどのキーワード引数を受け入れません。これは現在可能ですか?

4

2 に答える 2

3

Cartopy0.17およびmatplotlib3.1.1(Python 3.7)の場合、上記の解決策でset_extent()でエラーが発生しました。

set_extent()は次のようにしか機能しないようです。

ax1.set_extent([-180, 180, 0, 90], crs=ccrs.PlateCarree())

ax2.set_extent([-179, 179, 0, 90], crs=ccrs.PlateCarree())

したがって、回転した画像には奇妙な経度の境界が必要です。

于 2019-09-05T14:39:54.460 に答える
2

この機能は、Cartopy(v0.6.x)に実装されました。次の例では、北半球の極ステレオ投影で2つのサブプロットを生成します。1つはデフォルト設定で、もう1つは中心経度が変更されています。

"""Stereographic plot with adjusted central longitude."""
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from cartopy.examples.waves import sample_data


# read sample data
x, y, z = sample_data(shape=(73, 145))

fig = plt.figure(figsize=(8, 4))

# first plot with default settings
ax1 = fig.add_subplot(121, projection=ccrs.NorthPolarStereo())
cs1 = ax1.contourf(x, y, z, 50, transform=ccrs.PlateCarree(),
                   cmap='gist_ncar')
ax1.set_extent([0, 360, 0, 90], crs=ccrs.PlateCarree())
ax1.coastlines()
ax1.set_title('Centred on 0$^\circ$ (default)')

# second plot with 90W at the bottom of the plot
ax2 = fig.add_subplot(
    122, projection=ccrs.NorthPolarStereo(central_longitude=-90))
cs2 = ax2.contourf(x, y, z, 50, transform=ccrs.PlateCarree(),
                   cmap='gist_ncar')
ax2.set_extent([0, 360, 0, 90], crs=ccrs.PlateCarree())
ax2.coastlines()
ax2.set_title('Centred on 90$^\circ$W')

plt.show()

このスクリプトの出力は次のとおりです。

NH極心平射法

于 2013-01-08T15:01:21.047 に答える