matplotlibの基礎
matplotlibは、Pythonでグラフを描画するためのライブラリです。折れ線グラフ、散布図、棒グラフ、ヒストグラムなど、様々な種類のグラフを作成できます。主にmatplotlib.pyplotモジュールを通して利用します。
基本的な流れ:
matplotlib.pyplotをインポートします。一般的にpltというエイリアスでインポートします。
import matplotlib.pyplot as plt
描画するデータを用意します(リストやNumPy配列など)。
plt.plot()
, plt.scatter()
, plt.bar()
などの描画関数を使ってグラフを作成します。
必要に応じて、タイトル、ラベル、凡例などを追加します。
plt.show()
でグラフを表示します。
よく使うコマンド
以下は、matplotlibでよく使うコマンドの一部です。
描画関数
plt.plot(x, y, ...): 折れ線グラフ
plt.scatter(x, y, ...): 散布図
plt.bar(x, height, ...): 棒グラフ
plt.hist(x, ...): ヒストグラム
plt.pie(x, ...): 円グラフ
plt.imshow(X, ...): 画像の表示
グラフの装飾:
plt.title(label): グラフのタイトルを設定
plt.xlabel(label): x軸のラベルを設定
plt.ylabel(label): y軸のラベルを設定
plt.legend(): 凡例を表示
plt.grid(True): グリッド線を表示
plt.xlim(xmin, xmax): x軸の表示範囲を設定
plt.ylim(ymin, ymax): y軸の表示範囲を設定
plt.xticks(ticks, labels): x軸の目盛りとラベルを設定
plt.yticks(ticks, labels): y軸の目盛りとラベルを設定
グラフの表示と保存:
plt.show(): グラフを表示
plt.savefig(fname): グラフをファイルに保存
スタイルの設定:
線の色、太さ、種類 (color='red', linewidth=2, linestyle='--' など)
マーカーの種類、サイズ、色 (marker='o', markersize=8, markerfacecolor='blue' など)
使用例
いくつかの簡単な使用例を見てみましょう。
例1: 折れ線グラフ
import matplotlib.pyplot as plt
import numpy as np
# データ作成
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 描画
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)', linestyle='--')
# ラベルとタイトル
plt.xlabel('X軸')
plt.ylabel('Y軸')
plt.title('sin(x)とcos(x)')
# 凡例の表示
plt.legend()
# グリッドの表示
plt.grid(True)
# グラフの表示
plt.show()
このコードは、x軸の値を0から10までlinspace
で生成し、それに対応するsin(x)
とcos(x)
の値を計算します。そして、それぞれの曲線を異なるスタイルで折れ線グラフとして描画し、ラベル、タイトル、凡例、グリッドを追加しています。
例2: 散布図
import matplotlib.pyplot as plt
import numpy as np
# ランダムなデータの作成
np.random.seed(0)
x = np.random.rand(50)
y = np.random.rand(50)
colors = np.random.rand(50)
sizes = 100 * np.random.rand(50)
# 散布図の描画
plt.scatter(x, y, c=colors, s=sizes, alpha=0.7, cmap='viridis')
plt.colorbar(label='Color Intensity') # カラーバーの追加
# ラベルとタイトル
plt.xlabel('X')
plt.ylabel('Y')
plt.title('ランダムな散布図')
# グラフの表示
plt.show()
この例では、ランダムなx
とy
の座標、色、サイズを持つ散布図を作成しています。cmap
でカラーマップを指定し、colorbar()
で色の凡例を表示しています。
例3: 棒グラフ
import matplotlib.pyplot as plt
# データ
labels = ['A', 'B', 'C', 'D']
values = [20, 35, 30, 25]
# 棒グラフの描画
plt.bar(labels, values)
# ラベルとタイトル
plt.xlabel('カテゴリ')
plt.ylabel('値')
plt.title('棒グラフの例')
# グラフの表示
plt.show()
ここでは、カテゴリカルなデータに対する棒グラフを描画しています。 これらはmatplotlibの基本的な使用例です。matplotlibは非常に柔軟性が高く、より複雑なグラフやカスタマイズも可能です。