Matplotlibレイアウト設定完全ガイド(レーダー図、Figureコンテナ、Axesオブジェクト、Axisコンテナ、複合グラフ、3Dプロット)

レーダー図

レーダー図(Radar Chart)はスパイダーチャートとも呼ばれ、3つ以上の维度の変数の强弱を表現するのに適しています。例えば、特定の企业在哪些业务方面的投入などを視覚化する場合に便利です。

matplotlib.pyplotでは、plt.polarを使用してレーダー図を描画できます。このメソッドはplt.plotと非常によく似た参数を持ちますが、X軸の座標点は弧度法(2×PI=360°)で指定する必要があります。

重要なポイント:

  • polarメソッドは自动的に線を閉じないため、thetaとvaluesの最後に最初の点の 값을重复して追加する必要があります。これにより、始点と终点が同じ位置になり、闭じた図形が描画されます。
  • polarは線のみを描画するため、色で內部を塗りつぶす場合はfillメソッドを呼び出す必要があります。
  • デフォルトでは円形の座標は角度で表されますが、テキストに変更する場合はxticksを設定します。

基本的なレーダー図の例:

import numpy as np
import matplotlib.pyplot as plt

# データの準備
labels = ['営業', '開発', '人事', '財務', 'Marketing']
values = [85, 70, 90, 65, 80]

# 角度と値を闭环にするため最後の値を追加
angles = np.linspace(0, 2 * np.pi, len(labels), endpoint=False).tolist()
angles += angles[:1]
values += values[:1]

# レーダー図の描画
fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(polar=True))
ax.plot(angles, values, 'o-', linewidth=2)
ax.fill(angles, values, alpha=0.25)

# 軸ラベルを設定
ax.set_xticks(angles[:-1])
ax.set_xticklabels(labels)
ax.set_title('部門別パフォーマンス評価')

plt.tight_layout()
plt.show()

Figureコンテナ

Matplotlibでの绘图遵循「画板→画纸→图形」の階層構造です。Figureは画板に相当し、Axesは画纸に相当します。この構造を理解することで、柔軟なレイアウト設定が可能になります。

Figureを作成すると、自動的に Axesも生成されます。Figureのsize参数で全体の大きさを、dpi参数で解像度を設定できます。

# Figureの作成
fig = plt.figure(figsize=(10, 6), dpi=100)
print(f"Figureサイズ: {fig.get_size_inches()} inch")
print(f"DPI: {fig.dpi}")

Axesサブプロット

Axesの概要

Axesコンテナは具体的な图形を作成するための领域です。曲線、棒グラフ、ヒストグラム、散布図など、すべての图形描画の基础となります。之前学習したplt.barplt.histplt.scatterなどのメソッドは、内部でAxesオブジェクトを操作しています。

サブプロットの追加方法

add_subplotメソッド

add_subplotを使用すると、グリッド形式でサブプロットを追加できます。引数の「221」は「2行2列の1番目」を意味します。

add_axesメソッド

add_axesでは、より灵活な配置を指定できます。引数は[left, bottom, width, height]で、0から1の範囲で指定します。

軸の範囲設定

set_xlimとset_ylimを使用して、X軸とY軸の最小値と最大値を個別に設定できます。

複Y軸プロット

一部のグラフでは、2つの異なるY軸スケールを表示する必要があります。例えば、降水量は棒グラフで、気温は折れ線グラフで表現する場合などに便利です。

Axisコンテナ

AxisコンテナはX軸またはY軸そのものを表します。Axisオブジェクトには、Tick(目盛)、TickLabel(目盛ラベル)、AxisLabel(軸ラベル)が含まれます。

目盛りの設定

ラベル位置の回転設定

rotationパラメータでラベルテキストの回転角度を設定できます。デフォルトは90度です。

目盛りフォーマットの詳細設定

サブプロットの反復処理

複数のサブプロットがあり、それぞれに同様の設定(タイトル、軸ラベル、グリッドなど)を適用する場合、ループを使用して一括処理できます。

3D立体图形

Matplotlibでは、mplot3dモジュールを使用して3Dグラフを描画できます。3Dプロットを inúmerглядетьには、PyCharmの設定でツールウィンドウでのプロット表示を無効にする必要があります。

設定手順:File → Settings → Tools → Python Scientificで「Show plots in tool window」のチェックを外します。

3D散布図

3D曲面図

演習問題

演習1:価格と需要量の関係分析

商品の適切な定价のために、試売実験を行いました。以下の価格と需要量のデータを用いて、两者关系を視覚化してください。

演習2:映画票房比較グラフ

4つの映画の3日間の票房データを比較するグラフを作成してください。

演習3:身長分布の可視化

クラスの生徒たちの身長データを用いて、分布を確認するグラフを描画してください。

演習4:2×2サブプロットレイアウト

1つのFigureに4つの異なるグラフを配置するレイアウトを作成してください。

まとめ

本稿では、Matplotlibのレイアウト設定について学びました。レーダー図、Figure/Axes/Axisコンテナ、複Y軸プロット、3Dプロット,以及び复合グラフの作成方法を習得しました。これらの技術を组合せることで、数据の可視化がより丰富になります。

タグ: Python matplotlib データ可視化 レーダー図 3Dプロット

8月21日 19:40 投稿