33

我是 Seaborn 包的粉丝,它使用 Matplotlib 制作漂亮的图。但我似乎无法弄清楚如何在我的情节中显示次要网格线。

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')

给出:

在此处输入图像描述

这里有什么想法吗?还有关于如何调整确实出现的 Seaborn 网格线样式的任何想法……特别是,我想让它们更窄。

4

2 回答 2

42

将 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)

在此处输入图像描述

于 2014-02-21T03:17:08.497 回答
10

那是因为次要刻度还没有定义,所以我们需要添加例如:

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)

在此处输入图像描述

于 2014-02-21T02:16:16.663 回答