Matplotlib を使ったマスクデータ付き散布図

PythonPythonBeginner
オンラインで実践に進む

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

このチュートリアルでは、Python の Matplotlib ライブラリを使って、マスクされたデータポイント付きの散布図を作成する方法を説明します。また、マスク領域を区切る線も追加します。

VM のヒント

VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。

Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証は自動化できません。

学習中に問題がある場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

必要なライブラリのインポートと乱数シードの設定

必要なライブラリをインポートし、再現性を保証するために乱数シードを設定して始めます。

import matplotlib.pyplot as plt
import numpy as np

## Setting random seed for reproducibility
np.random.seed(19680801)

散布図用のデータの生成

次に、散布図用のデータを生成します。0 から 0.9 までのランダムな x と y の値と、0 から 10 までのランダムな半径を持つ 100 個のデータポイントを作成します。各データポイントの色は、その面積の平方根によって決まります。

N = 100
r0 = 0.6
x = 0.9 * np.random.rand(N)
y = 0.9 * np.random.rand(N)
area = (20 * np.random.rand(N))**2  ## 0 to 10 point radii
c = np.sqrt(area)

データポイントのマスクと散布図の作成

原点からの距離に基づいてデータポイントをマスクします。距離がr0未満のデータポイントはarea1でマスクされ、距離がr0以上のデータポイントはarea2でマスクされます。その後、area1area2に対してそれぞれmarker='^'marker='o'を使って、マスクされたデータポイントの散布図を作成します。

r = np.sqrt(x ** 2 + y ** 2)
area1 = np.ma.masked_where(r < r0, area)
area2 = np.ma.masked_where(r >= r0, area)
plt.scatter(x, y, s=area1, marker='^', c=c)
plt.scatter(x, y, s=area2, marker='o', c=c)

マスク領域を区切る線の追加

最後に、マスク領域を区切る線を追加します。theta 値の配列を作成し、np.cos(theta)np.sin(theta)を使って半径r0の円を描画します。

## Show the boundary between the regions:
theta = np.arange(0, np.pi / 2, 0.01)
plt.plot(r0 * np.cos(theta), r0 * np.sin(theta))

散布図の表示

plt.show()を使って散布図を表示します。

plt.show()

まとめ

このチュートリアルでは、Python の Matplotlib ライブラリを使ってマスクされたデータポイントを持つ散布図を作成する方法を学びました。また、マスク領域を区切る線も追加しました。まず必要なライブラリをインポートし、乱数シードを設定しました。次に、散布図用のデータを生成し、原点からの距離に基づいてデータポイントをマスクしました。その後、マスクされたデータポイントの散布図を作成し、マスク領域を区切る線を追加しました。最後に、散布図を表示しました。