Matplotlibで垂直棒グラフのY軸と最初のバーの間に余白を設ける方法
Matplotlibで作成した垂直棒グラフにおいて、Y軸と最初のバーの間にギャップ(余白)を設けたい場合は、xlim()メソッドを使ってX軸の表示範囲を調整するのが効果的です。デフォルトでは最初のバーがY軸に近い位置に描画されますが、X軸の下限値を左方向へ広げることで、意図的にスペースを作ることができます。
手順
- 図のサイズを設定し、サブプロット間および周囲のパディングを調整します。
- データポイントのリスト x_val、x_names、y_val を作成します。また、width(バーの幅)と interval(目盛りの間隔)変数を初期化します。
- bar() メソッドを使用して棒グラフを作成します。
- xticks() メソッドでX軸の目盛りの位置とラベルを取得・設定します。
- yticks() メソッドでY軸の目盛りの位置とラベルを取得・設定します。
- xlim() メソッドで現在の軸のX軸範囲を設定します。下限値を「最小値 − 0.5」とすることで、Y軸との間にギャップが生まれます。
- 図を表示するには show() メソッドを使用します。
コード例
from matplotlib import pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True x_val = range(5) x_names = ["one", "two", "three", "four", "five"] y_val = [10, 30, 40, 20, 15] width = 0.25 interval = 10 plt.bar(x_val, y_val, width=width, align='center') plt.xticks(x_val, x_names) plt.yticks(range(0, max(y_val), interval)) plt.xlim([min(x_val) - 0.5, max(x_val) + 0.5]) plt.show()
出力結果

このコードを実行すると、Y軸と最初のバー「one」の間に適度な余白が確保された棒グラフが表示されます。xlim() の下限値をさらに小さくすれば、ギャップの幅を自由に調整することも可能です。
-
Matplotlibのplt.show()とcv2.imshow()の違いとは?画像表示の差をわかりやすく解説
Pythonで画像を扱う際、MatplotlibとOpenCV(cv2)はどちらも画像を多次元のNumPy配列として読み込みます。しかし、両者には重要な違いがあります。Matplotlibのimreadメソッドは画像を赤(R)・緑(G)・青(B)の順(RGB順)のNumPy配列として読み込み、imshowで画面に表示します。一方、OpenCVのcv2.imreadも同様に多次元NumPy配列として画像を読み込みますが、チャンネルの並びが逆順(BGR順)になっている点が最大の特徴です。この違いを理解せずに使うと、cv2で読み込んだ画像をMatplotlibで表示した際に色が反転して見えるという現
-
Matplotlibで凡例のマーカーとラベルの間隔を調整する方法
Matplotlibで凡例(legend)のマーカーとラベルの間隔を調整したい場合は、legend()メソッドのlabelspacing引数を使用します。この引数に数値を指定することで、凡例内の各行(マーカーとラベル)同士の縦方向のスペースを自由に広げたり狭めたりできます。手順Label 1、Label 2、Label 3というラベルを付けて、3本の線をプロットします。凡例のマーカーとラベルの間隔を調整するための変数spaceを定義します。legend()メソッドの引数にlabelspacing=spaceを指定して呼び出します。図を表示するには、plt.show()メソッドを使用します。サン