3
使用下面的代码,第一个等高线图有网格线。对于第二个情节,我已经导入了seaborn,但网格线没有显示出来。我需要添加什么来使网格线显示在第二个图上。使用seaborn和contourf,我如何绘制网格线?
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()
谢谢。作为解释,seaborn是否设置参数,以便网格绘制在实心轮廓图之下,因此网格线变得模糊不清。 “axes.axisbelow”:False将坐标轴和网格线绘制在图的顶部,zorder = 0将等值线图设置为首先绘制在轴和网格线的下方。是对的吗? – pheon
正确的是,seaborn网格绘制在所有数据元素之下,对于大多数情节来说看起来更好,但是正如你发现的,在类似图像的情节中效果不好。 – mwaskom