Python
 Computer >> コンピューター >  >> プログラミング >> Python

Matplotlibで垂直棒グラフのY軸と最初のバーの間に余白を設ける方法

Matplotlibで作成した垂直棒グラフにおいて、Y軸と最初のバーの間にギャップ(余白)を設けたい場合は、xlim()メソッドを使ってX軸の表示範囲を調整するのが効果的です。デフォルトでは最初のバーがY軸に近い位置に描画されますが、X軸の下限値を左方向へ広げることで、意図的にスペースを作ることができます。

手順

  • 図のサイズを設定し、サブプロット間および周囲のパディングを調整します。
  • データポイントのリスト x_valx_namesy_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()

出力結果

Matplotlibで垂直棒グラフのY軸と最初のバーの間に余白を設ける方法

このコードを実行すると、Y軸と最初のバー「one」の間に適度な余白が確保された棒グラフが表示されます。xlim() の下限値をさらに小さくすれば、ギャップの幅を自由に調整することも可能です。

  1. 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で表示した際に色が反転して見えるという現

  2. Matplotlibで凡例のマーカーとラベルの間隔を調整する方法

    Matplotlibで凡例(legend)のマーカーとラベルの間隔を調整したい場合は、legend()メソッドのlabelspacing引数を使用します。この引数に数値を指定することで、凡例内の各行(マーカーとラベル)同士の縦方向のスペースを自由に広げたり狭めたりできます。手順Label 1、Label 2、Label 3というラベルを付けて、3本の線をプロットします。凡例のマーカーとラベルの間隔を調整するための変数spaceを定義します。legend()メソッドの引数にlabelspacing=spaceを指定して呼び出します。図を表示するには、plt.show()メソッドを使用します。サン