web-dev-qa-db-ja.com

seabornを使用してmatplotlibプロットにマイナーグリッドラインを追加する

私は、Matplotlibを使用して見栄えの良いプロットを作成するためのSeabornパッケージのファンです。しかし、プロットにマイナーグリッドラインを表示する方法がわかりません。

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sbn

x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)

fig, ax = plt.subplots(1, 1)
ax.scatter(x, y)

ax.grid(b=True, which='major')
ax.grid(b=True, which='minor')

与える:

enter image description here

ここで何か考えはありますか?また、表示されるSeabornグリッドラインのスタイルをどのように調整するかについての考え...特に、そ​​れらを狭くしたいと思います。

23
8one6

CT Zhuの回答とtcaswellのヒントを組み合わせてまとめます。

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sbn

x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)

fig, ax = plt.subplots(1, 1)

ax.scatter(x, y)
ax.get_xaxis().set_minor_locator(mpl.ticker.AutoMinorLocator())
ax.get_yaxis().set_minor_locator(mpl.ticker.AutoMinorLocator())
ax.grid(b=True, which='major', color='w', linewidth=1.0)
ax.grid(b=True, which='minor', color='w', linewidth=0.5)

enter image description here

32
8one6

これは、副ティックがまだ定義されていないためです。たとえば、次のように追加する必要があります。

ax.set_xticks(np.arange(0,8)-0.5, minor=True)
ax.set_yticks([-1.25, -0.75, -0.25,0.24,0.75,1.25], minor=True)

enter image description here

7
CT Zhu