使用 seaborn 和 contourf,如何绘制网格线?

Using seaborn and contourf, how can I plot gridlines?

使用下面的代码,第一个等高线图有网格线。对于第二个情节,我导入了 seaborn,但没有显示网格线。我需要添加什么才能使网格线显示在第二个图上。

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


dx=0.05
x=np.arange(0,5+dx,dx)
y=x
X,Y = np.meshgrid(x,y)
Z = np.sin(X)**10+np.cos(10+Y*Y)*np.cos(X)

nbins=10
levels=mpl.ticker.MaxNLocator(nbins=nbins).tick_values(Z.min(),Z.max())

plt.figure()
plt.contourf(x,y,Z,levels=levels)
plt.colorbar()
plt.grid('on')

import seaborn as sns
sns.set_context("notebook")
sns.set_style("whitegrid")

plt.figure()
plt.contourf(x,y,Z,levels=levels)
plt.colorbar()
plt.grid('on')
plt.show()

您需要更改 axes.axisbelow rc 参数或 contourf 图的 zorder。所以你可以做

sns.set(context="notebook", style="whitegrid",
        rc={"axes.axisbelow": False})

当您设置样式或

plt.contourf(x, y, Z, levels=levels, zorder=0)

画图的时候