web-dev-qa-db-ja.com

Python matplotlibは、水平の主グリッド線と垂直の副グリッド線のみを表示します

Y軸の主グリッド線(水平グリッド線)をプロットしたいのですが、(x軸の)垂直主グリッド線をプロットしたくありません。代わりに、垂直のマイナーグリッドラインをプロットします。

これどうやってするの?

ax.grid(which='major', linewidth=0)コードは、垂直と水平の両方の主グリッド線を非表示にします...

ありがとうございました!

11
ragesz

グリッドラインプロパティは、ax.xaxis.grid()およびax.yaxis.grid()によって個別に設定できます。
マイナーグリッドラインをアクティブにするには、まずそれらのロケーターを指定する必要があります。

import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator

fig, ax = plt.subplots(figsize=(5,3))

ax.yaxis.grid(which="major", color='r', linestyle='-', linewidth=2)

ml = MultipleLocator(0.02)
ax.xaxis.set_minor_locator(ml)
ax.xaxis.grid(which="minor", color='k', linestyle='-.', linewidth=0.7)

plt.show()

enter image description here