也许我在文档中遗漏了一些明显的东西,
http://matplotlib.org/examples/pylab_examples/contour_demo.html
但是当我第一次创建轮廓图时,每个轮廓线都有标签。但是,默认情况下,matplotlib不会执行此操作。使用演示中给出的绘图,我在0.00
和3.00
之间生成更多轮廓线:
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
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 = mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)
Z2 = mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1)
# difference of Gaussians
Z = 10.0 * (Z2 - Z1)
plt.figure()
levels = np.arange(0.00, 3.00, 0.25)
CS = plt.contour(X, Y, Z, levels=levels)
plt.clabel(CS, inline=1, fontsize=10)
plt.xlim(0, 3)
plt.ylim(0, 2)
plt.show()
输出
每条轮廓线都有清晰的标记。现在,让我们放大这个轮廓的一个不同区域,即((0.5, 1.0), (0.5, 1.0))
plt.figure()
levels = np.arange(0.00, 3.00, 0.25)
CS = plt.contour(X, Y, Z, levels=levels)
plt.clabel(CS, inline=1, fontsize=10)
plt.xlim(0.5, 1.0)
plt.ylim(0.5, 1.0)
plt.show()
此输出显然未标记。
如何设置plt.contour
自动标记每条轮廓线?
答案 0 :(得分:1)
您可能需要直接更改x和y:
x = np.arange(0.5, 1.0, delta)
y = np.arange(0.5, 1.0, delta)