Python
 Computer >> コンピューター >  >> プログラミング >> Python

MatplotlibでNaN値を含むデータをプロット・操作する方法を解説

MatplotlibでNaN値をプロット・操作する手順

Matplotlibでは、NaN(欠損値)を含むデータもそのまま可視化できます。基本的な流れは以下の3ステップです。

  • NumPyを使って、NaN値をいくつか含むデータ(配列)を作成します。

  • imshow()メソッドを使用し、カラーマップとステップ1で作成したデータを指定して、2次元の正規ラスタ上に画像として表示します。デフォルトでは、NaNの部分は自動的に空白(マスクされた領域)として描画されます。

  • 作成した図を画面に表示するには、show()メソッドを呼び出します。

コード例

import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
data = np.array([[1., 1.2, 0.89, np.NAN],
    [1.2, np.NAN, 1.89, 2.09],
    [.78, .67, np.NAN, 1.78],
    [np.NAN, 1.56, 1.89, 2.78]]
)
plt.imshow(data, cmap="gist_rainbow_r")
plt.show()

このコードでは、4×4の2次元配列の中にnp.NANを4か所配置しています。imshow()に「gist_rainbow_r」というカラーマップを指定することで、数値の大小が色のグラデーションとして表現され、NaNのセルは何も塗られない状態で表示されます。

出力結果

MatplotlibでNaN値を含むデータをプロット・操作する方法を解説

補足:NaN部分の見た目を変えたい場合

NaN領域を特定の色で塗りたい場合は、カラーマップのset_bad()メソッドを利用します。たとえば plt.cm.get_cmap("gist_rainbow_r").set_bad(color="gray") のように設定すると、欠損値のセルだけグレーで表示でき、データの欠損位置をひと目で把握できるようになります。

  1. Matplotlibでカラーバー付き2D行列をPythonでプロットする方法

    Pythonでカラーバー付きの2D行列をプロットするには、numpyを使って2次元配列(行列)を作成し、そのデータをimshow()メソッドに渡すのが最も簡単な方法です。手順numpyを使用して data2D という2次元配列を作成します。imshow() メソッドを使い、データを画像として(2次元の正規ラスタ上に)表示します。colorbar() メソッドに imshow() が返す ScalarMappable インスタンスを渡し、カラーバーを作成します。これにより、色と数値の対応関係がひと目でわかるようになります。図を表示するには、show() メソッドを使用します。コード例import

  2. Matplotlibを使ってPythonで3D密度マップを描画する方法を徹底解説

    MatplotlibとNumPyを組み合わせると、Pythonで簡単に3D密度マップ(濃度分布図)を作成できます。本記事では、pcolormesh()メソッドを使って擬似カラープロットとして密度マップを可視化する具体的な手順を、サンプルコード付きでわかりやすく解説します。 3D密度マップを描画する基本の手順 NumPyでデータを生成する:side、x、y、zの各データをNumPyで作成します。特にlinspace関数を使うと、指定した2点間の範囲を任意の分割数で等間隔にデータ生成できるため便利です。 座標行列を作成する:sideデータをもとにmeshgrid()を使い、座標ベクトルから2次元