Python 3.x 对于等高线图,图例()为空;这是故意的吗?

Python 3.x 对于等高线图,图例()为空;这是故意的吗?,python-3.x,matplotlib,plot,contour,Python 3.x,Matplotlib,Plot,Contour,我写 得到 i、 e.右上角的小空东西,而不是图例(由我用红色三角形标记)。这是故意的吗?如何获得等高线图的图例(即带有值) Python是3.7或3.8,matplotlib是3.3.1我认为matplotlib的作者希望级别是内联的,而不是图例。看 这就是说,contour返回的对象包含对艺术家和级别值的引用,因此您可以使用该引用创建图例: fig2 = plt.figure(figsize=plt.figaspect(2. / 3.)) ax = fig2.add_subplot(1,

我写

得到

i、 e.右上角的小空东西,而不是图例(由我用红色三角形标记)。这是故意的吗?如何获得等高线图的图例(即带有值)


Python是3.7或3.8,matplotlib是3.3.1

我认为matplotlib的作者希望级别是内联的,而不是图例。看

这就是说,
contour
返回的对象包含对艺术家和级别值的引用,因此您可以使用该引用创建图例:

fig2 = plt.figure(figsize=plt.figaspect(2. / 3.))
ax = fig2.add_subplot(1, 1, 1)
cs = ax.contour(X, Y, distances_bulk, 8)
plt.sca(ax)
plt.legend()

delta = 0.025
x = np.arange(-3.0, 3.0, delta)
y = np.arange(-2.0, 2.0, delta)
X, Y = np.meshgrid(x, y)
Z1 = np.exp(-X**2 - Y**2)
Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2)
Z = (Z1 - Z2) * 2
fig, ax = plt.subplots()
CS = ax.contour(X, Y, Z, levels=7)

h = CS.collections
l = [f'{a:.1f}' for a in CS.levels]
ax.legend(h,l)