Python Matplotlibで同じY軸を共有する2つの水平棒グラフを描画する方法
PythonのMatplotlibを使って、同じY軸を共有する2つの水平棒グラフを並べて描画するには、subplot()メソッドにsharey=ax1を指定します。水平棒グラフはbarh()メソッドで描画できます。この方法を使えば、2つのグラフ間でY軸のスケールが自動的に揃うため、データの比較が非常に容易になります。
実装の手順
- データポイント用のリストを作成します。
- figure()メソッドを使用して、新しい図を作成(または既存の図をアクティブ化)します。
- subplot()メソッドで、インデックス1の位置にサブプロットを追加します。
- barh()メソッドを使用して、1つ目の軸に水平棒グラフを描画します。
- subplot()メソッドで、インデックス2の位置にサブプロットを追加し、sharey引数で1つ目の軸のY軸を共有します。
- 2つ目の軸にも水平棒グラフを描画します。
- 図を表示するには、show()メソッドを使用します。
コード例
import matplotlib.pyplot as plt import numpy as np plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True y = [3, 1, 5] x1 = [10, 7, 3] x2 = [9, 5, 1] fig = plt.figure() axe1 = plt.subplot(121) axe1.barh(y, x1, align='center', color='red', edgecolor='black') axe2 = plt.subplot(122, sharey=axe1) axe2.barh(y, x2, align='center', color='green', edgecolor='black') plt.show()
コードのポイント
plt.subplot(121)は「1行2列のグリッドの1番目」を意味し、plt.subplot(122)は同じグリッドの2番目を意味します。2つ目のサブプロット作成時にsharey=axe1を渡すことで、両方のグラフが同じY軸を共有するようになり、片方の軸を操作するともう片方も連動して動きます。また、align='center'でバーをY座標の中央に配置し、colorとedgecolorでバーの塗り色と枠線の色を指定しています。
出力結果

-
Matplotlibで3Dプロットのアスペクト比を設定する方法
Matplotlibで3Dプロットのアスペクト比を設定するには、set_aspect()メソッドを使用します。ここでは、曲面プロット(サーフェスプロット)を例に、具体的な手順とサンプルコードを解説します。 3Dプロットのアスペクト比を設定する手順 以下の手順に従って実装します。 figure()メソッドで新しい図を作成するか、既存の図をアクティブにします。 projection=3d を指定して現在のAxes(座標軸)を取得します。存在しない場合は自動的に作成されます。 numpyを使ってデータ点 R、Y、z を生成します。 R、Y、zをもとにサーフェスプロット(曲面図)を作成します。 s
-
Python Matplotlibで3Dグラフをプロットする方法を解説
PythonのMatplotlibを使えば、3次元の散布図やグラフを簡単に描画できます。この記事では、mpl_toolkits.mplot3dモジュールを利用して3Dグラフを作成する手順を、サンプルコード付きでわかりやすく解説します。 3Dグラフをプロットする基本手順 Pythonで3Dグラフを描くには、以下のステップに従います。 figure()メソッドを使って、新しい図(フィギュア)を作成するか、既存の図をアクティブにします。 Axes3Dオブジェクトを取得して、3D用の座標軸を準備します。 x、y、zそれぞれのデータポイントをリストとして定義します。 scatter3D()メソッドを使