Python 奇怪的matplotlib等高线打印轴标签显示两组值

Python 奇怪的matplotlib等高线打印轴标签显示两组值,python,numpy,matplotlib,Python,Numpy,Matplotlib,我正在使用matplotlib 3.3.4并生成一个基本等高线图。但当我这样做时,X轴和Y轴标签显示了我想要的范围(例如0到pi),但也有一组额外的标签显示出来,似乎是某种规格化值(0到1)。下面的代码再现了这一点: import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, np.pi, 40) y = np.linspace(0, np.pi, 40) z = np.sin(x[:, None])**2 + n

我正在使用matplotlib 3.3.4并生成一个基本等高线图。但当我这样做时,X轴和Y轴标签显示了我想要的范围(例如0到pi),但也有一组额外的标签显示出来,似乎是某种规格化值(0到1)。下面的代码再现了这一点:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, np.pi, 40)
y = np.linspace(0, np.pi, 40)
z = np.sin(x[:, None])**2 + np.sin(y)**2

fig, ax = plt.subplots(figsize=(10,10))
ax = fig.add_subplot(111)
ax.contour(x, y, z)
并生成如下所示的绘图。我在预期值[0、0.5、1.0、1.5、2.0、2.5和3.0]处看到轴标签。但还有另一组[0,0.2,0.4,0.6,0.8,1.0]来自某个地方

在回顾了contour()示例之后,我意识到我应该调用np.meshgrid(),而不是使用额外的axis来生成上面的z

关于是什么导致这种奇怪的轴标签行为的任何线索?
您正在添加两个子批次,一个通过
plt.subplot
,一个通过
add\u subplot
。如果删除其中一个标记,则该图形将只有一组标记:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, np.pi, 40)
y = np.linspace(0, np.pi, 40)
z = np.sin(x[:, None])**2 + np.sin(y)**2

fig, ax = plt.subplots(figsize=(10,10))
ax.contour(x, y, z)

完美的我是个白痴。不,很高兴我能帮上忙!