Python で配列をプロットする
データを視覚化すると、データの一般的な理解が向上し、記憶に役立ちます。これは、人間はテキストよりも視覚的なものを覚えている傾向があるためです。利用できるデータはたくさんあり、それを理解するには適切に構造化された形式が必要であるため、データの視覚化は非常に重要です。このアクティビティは、すべてのデータサイエンティストと機械学習愛好家の日常業務の一部です。データをよりよく理解し、優れた効率的な機械学習モデルを構築するには、データを視覚化する必要があります。
多くの場合、データは配列の形式で表され、最終的にはデータをプロットする必要があります。この記事では、Python を使用してこのようなデータをプロットする方法について説明します。
コードを進める前に、1つのことを理解する必要があります。配列は n 次元
にすることができます。つまり、配列内に配列(2-D 配列
)、または配列内にさらに配列を持つ配列(3D 配列)などを含めることができます。また、次元の数が増えると、配列のプロットの複雑さが増します。このような場合、配列は、視覚化を向上させる他の種類のグラフをプロットまたはプロットするのに適した別の形式に変換する必要があります。この記事では、1D および 2D 配列のプロットについて説明します。
視覚化を目的とした包括的な Python ベースのライブラリである Matplotlib
と、配列をプロットするための NumPy
を使用します。
これらについての詳細はこちら (Matplotlib
)とこちら (NumPy
)を参照してください。
Python で 1-D 配列をプロットする
1 次元配列をプロットするには、次のコードを参照してください。
import numpy as np
import matplotlib.pyplot as plt
x = np.array(range(0, 10))
y = np.array([100, 23, 44, 12, 55, 85, 69, 33, 75, 2])
plt.title("Plotting 1-D array")
plt.xlabel("X axis")
plt.ylabel("Y axis")
plt.plot(x, y, color="red", marker="o", label="Array elements")
plt.legend()
plt.show()
変数 y
はプロットする必要のあるデータを保持し、変数 x
はインデックスを保持します。ここでは、プロットの目的でも、0 ベースのインデックス付けが考慮されています。この x = np.array(range(1, 11))
を追加することで、インデックスを 1 ベースのインデックスに戻すこともできることに注意してください。プロット
関数は、最初に x 軸
のデータを取得し、次に y 軸
のデータを取得します。color
引数は折れ線グラフの色を設定し、marker
引数は折れ線グラフ上の点をマークするために使用される記号を設定し、label
引数はこの特定の線に表示されるラベルを設定します。plt.legend()
がないと、ラベルに関する情報がグラフに表示されないことに注意してください。
上記のコードの出力は次のようになります。
Python で 2 次元配列をプロットする
2 次元配列をプロットするには、次のコードを参照してください。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.pyplot import figure
figure(figsize=(8, 6))
x = np.array(range(0, 10))
y = np.array(
[
[32, 69, 92, 81, 27, 97, 64, 98, 26, 22],
[85, 76, 63, 44, 94, 52, 71, 66, 2, 62],
[45, 80, 46, 24, 10, 74, 10, 33, 12, 60],
[73, 94, 21, 6, 93, 74, 36, 47, 16, 99],
[96, 84, 66, 12, 43, 58, 17, 16, 28, 6],
[83, 4, 56, 94, 97, 36, 94, 41, 74, 14],
[90, 13, 11, 71, 79, 49, 9, 69, 73, 61],
[94, 52, 28, 18, 14, 15, 91, 95, 16, 42],
[73, 35, 40, 25, 46, 25, 33, 1, 99, 30],
[61, 7, 89, 33, 94, 64, 1, 60, 41, 81],
]
)
plt.title("Plotting a2-D array")
plt.xlabel("X axis")
plt.ylabel("Y axis")
for i, array in enumerate(y):
plt.plot(
x,
array,
color=np.random.rand(
3,
),
marker="o",
label=f"Array #{i}",
)
plt.legend(loc="center left", bbox_to_anchor=(1, 0.5))
plt.show()
変数 y
は 2-D
配列を保持します。2-D
配列の各配列を反復処理し、ランダムな色と一意のラベルでプロットします。プロットが完了したら、凡例ボックスの位置を変更してプロットを表示します。
上記のコードの出力は次のようになります。