Matplotlibで2つのY軸(異なる単位)を使って1つのデータをプロットする方法
Matplotlibで2つのY軸を持つグラフを作成する手順
Matplotlibでは、twinx()メソッドを活用することで、X軸を共有しながらY軸を2本(異なる単位)持つグラフに、1つのデータセットを簡単にプロットできます。例えば、速度と加速度のように単位が異なる2種類のデータを同じ図上で比較したい場合に非常に便利です。
以下の手順に従って実装していきましょう。
- 図のサイズを設定し、サブプロット間および周囲のパディングを調整します。
- numpyを使って速度と加速度のデータポイントを作成します。
- 現在の図にサブプロットを追加します。
- plot()メソッドで速度のデータポイントをプロットします。
- X軸を共有するツインAxes(第2のY軸)を作成します。
- plot()メソッドで加速度のデータポイントをプロットします。
- 図に凡例を配置します。
- show()メソッドで図を表示します。
twinx()メソッドとは
twinx()は、既存のAxesとX軸を共有する新しいAxesを生成するメソッドです。これにより、左側に1つ目のY軸、右側に2つ目のY軸が表示され、それぞれ異なるスケールや単位でデータを表現できるようになります。
コード例
import matplotlib.pyplot as plt import numpy as np plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True speed = np.array([3, 1, 2, 0, 5]) acceleration = np.array([6, 5, 7, 1, 5]) ax1 = plt.subplot() l1, = ax1.plot(speed, color='red') ax2 = ax1.twinx() l2, = ax2.plot(acceleration, color='orange') plt.legend([l1, l2], ["speed", "acceleration"]) plt.show()
出力結果

このコードを実行すると、赤色の線で速度(左のY軸)、オレンジ色の線で加速度(右のY軸)が描画されたグラフが表示されます。凡例によってどちらの線がどのデータに対応しているかもひと目でわかります。
-
Matplotlibを使ってPythonで3D密度マップを描画する方法を徹底解説
MatplotlibとNumPyを組み合わせると、Pythonで簡単に3D密度マップ(濃度分布図)を作成できます。本記事では、pcolormesh()メソッドを使って擬似カラープロットとして密度マップを可視化する具体的な手順を、サンプルコード付きでわかりやすく解説します。 3D密度マップを描画する基本の手順 NumPyでデータを生成する:side、x、y、zの各データをNumPyで作成します。特にlinspace関数を使うと、指定した2点間の範囲を任意の分割数で等間隔にデータ生成できるため便利です。 座標行列を作成する:sideデータをもとにmeshgrid()を使い、座標ベクトルから2次元
-
Python Matplotlibで円グラフの一部を強調表示して描画する方法
はじめに あなたが最も好きなグラフの種類は何ですか?経営層やビジネスアナリストにこの質問をすると、即座に「円グラフ(パイチャート)!」と答えられるほど、円グラフは割合を視覚的に表現するための最も一般的な手法のひとつです。 この記事では、PythonのMatplotlibを使って基本的な円グラフを描く方法から、explodeパラメータで特定のセクターを強調表示するテクニック、さらにパーセンテージではなく実際の値をラベルとして表示するカスタム関数の実装まで、段階的に解説します。 基本的な円グラフの作成手順 ステップ1:Matplotlibのインストール まず、以下のコマンドでMatplotlibを