使用seaborn将小网格线添加到matplotlib图中

8on*_*ne6 19 python matplotlib seaborn

我是使用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')
Run Code Online (Sandbox Code Playgroud)

得到:

在此输入图像描述

这有什么想法?还有任何关于如何调整Seaborn网格线的风格的想法......特别是,我喜欢让它们更窄.

8on*_*ne6 28

将CT朱的答案与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)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 你能在seaborn github上打开这个问题吗?您不应该自己设置小网格线的样式,但我认为这是当前代码中的疏忽. (3认同)

CT *_*Zhu 7

这是因为尚未定义次要刻度,所以我们需要添加例如:

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)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 最好是`ax.get_xaxis().set_minor_locator(...)` (5认同)