ホームページ  >  記事  >  バックエンド開発  >  matplotlib.pyplot.contourf を使用して密度配列をプロットする方法

matplotlib.pyplot.contourf を使用して密度配列をプロットする方法

WBOY
WBOY転載
2024-02-12 22:27:03755ブラウズ

如何使用 matplotlib.pyplot.contourf 绘制密度数组

質問の内容

dens という xarray データセットがあり、それをプロットしたいと考えています。

これはデータセットです:

リーリー

コマンドを使用しています

リーリー

でプロットしてうまくいきましたが、海岸線もプロット上にプロットしたかったので、

も使ってみました。 リーリー

しかし、すべてのコマンドを実行してから plt.show() を実行すると、等高線図が消え、海岸線だけが表示されます。

同じ海岸線マップ内で等高線マップを取得するには、この問題を解決するにはどうすればよいですか?

これが愚かな質問だったら申し訳ありませんが、私は Python の初心者です

###ご協力いただきありがとうございます、###

ユタム

編集:

今気づきましたが、2 つの異なる「ツールキット」を組み合わせようとしていて、ベースマップ ツールキットだけを使用してこれらすべてを行うことができますが、 を記述しようとしているだけです。 リーリー で次のエラーが表示されます:

リーリー

別の編集:

さらに発見を続け、ベースマップのドキュメントを読んだ後、コマンドの構文は次のようにすべきであることに気付きました

m.contourf(dens.lon.values,dens.lat.values,dens.density.values[-1,:,:]);

しかし、今度は次のエラーが発生します:

リーリー

これは密度配列が 2D であるためだと思いますが、そこから密度値を抽出するにはどうすればよいですか?実際には最後の時間ステップのみが必要なので、時間ディメンションで [-1] を使用しています。

改めてよろしくお願いいたします。 ヨタム

最終編集

これは最後のプロットです。周囲の土地を紫ではなく灰色にするにはどうすればよいですか?また、データを台無しにすることなく、もう少し広い地理的領域を記述する方法はありますか?

実際のデータの新しい数値は次のとおりです

正解


ベースマップと Xarray を使用したプロットについては

ここで説明されています
.

リーリー 上記のコードは動作するはずです。 私は cartopy を使用して、海岸線や国境などのフィーチャを処理します。以下は、データセットを使用してみるための実用的なコード スニペットです。 一个> リーリー

最終編集

すべての紫 (ゼロ) を白に設定するには、次の cmap を使用できます。

リーリー

以上がmatplotlib.pyplot.contourf を使用して密度配列をプロットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。