マスクされた値と NaN 値のプロット

PythonPythonBeginner
今すぐ練習

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

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

はじめに

データ可視化では、プロットする必要がある欠損データに遭遇することがよくあります。このチュートリアルでは、Matplotlibを使って欠損値を持つデータをプロットする方法を学びます。3つの方法を検討します:不要なデータポイントを削除する方法、ポイントをマスクする方法、および値をNaNに設定する方法。

VMのヒント

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

時々、Jupyter Notebookが読み込み終了するまで数秒待つ必要がある場合があります。Jupyter Notebookの制限により、操作の検証を自動化することはできません。

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

必要なライブラリをインポートする

このチュートリアルで使用するライブラリをインポートする必要があります。MatplotlibとNumPyを使用します。

import matplotlib.pyplot as plt
import numpy as np

プロット用のデータを作成する

NumPyを使ってプロット用のデータを作成します。-π/2からπ/2の間の31個のデータポイントを生成し、これらの値の3乗の余弦を計算します。

x = np.linspace(-np.pi/2, np.pi/2, 31)
y = np.cos(x)**3

ポイントを削除する

y > 0.7のポイントを削除します。残ったポイントのみを含む新しいx配列とy配列を作成します。

x2 = x[y <= 0.7]
y2 = y[y <= 0.7]

ポイントをマスクする

マスクされた配列を使って、y > 0.7のポイントをマスクします。マスクされた値を持つ新しいy配列を作成します。

y3 = np.ma.masked_where(y > 0.7, y)

NaNに設定する

y > 0.7の箇所をNaNに設定します。NaN値を持つ新しいy配列を作成します。

y4 = y.copy()
y4[y3 > 0.7] = np.nan

データをプロットする

4つのデータセットすべてを、それらを区別するために異なるマーカーと色を使ってプロットします。

plt.plot(x*0.1, y, 'o-', color='lightgrey', label='No mask')
plt.plot(x2*0.4, y2, 'o-', label='Points removed')
plt.plot(x*0.7, y3, 'o-', label='Masked values')
plt.plot(x*1.0, y4, 'o-', label='NaN values')
plt.legend()
plt.title('Masked and NaN data')
plt.show()

プロットを解釈する

結果として得られるプロットには、異なる色とマーカーの4つの線があります。最初の線(薄灰色)はマスクなしの元のデータを表しています。2番目の線(オレンジ色)は不要なポイントが削除されたデータを表しています。3番目の線(緑色)はマスクされた値を持つデータを表しています。4番目の線(青色)はNaN値を持つデータを表しています。このプロットは、異なる方法を使って欠損データを視覚化できる方法を示しています。

まとめ

このチュートリアルでは、Matplotlibを使って欠損値を持つデータをプロットする方法を学びました。不要なデータポイントを削除する方法、ポイントをマスクする方法、値をNaNに設定する方法の3つの方法を検討しました。NumPyを使ってプロットするデータを作成し、異なるマーカーと色を使ってデータセットを区別しました。また、欠損データを視覚化する異なる方法を理解するために、結果のプロットを解釈しました。