如何扩展轮廓的范围

How to extent the range of contours

问题

下面的代码几乎按照我的意愿绘制了等高线图。结果的问题是我不知道如何扩展绘制等高线(或彩色地图的颜色)的范围。

我设置 colors = 'k' 以确保白色背景上没有线条消失。 我尝试用 CS.set_clim(0.01,0.4) 修改轮廓线范围。即使 CS.set_clim(0.01,0.1) 也不会改变图像。我希望行 >= .1 消失。

import numpy as np
from scipy import stats as ss
from matplotlib import pyplot as plt
x, y = np.mgrid[-2.5:2.5:.01, -2.5:2.5:.01]
pos = np.dstack((x, y))
rv = ss.multivariate_normal([0.0, 0.0], [[1.0, 0.], [0., 1.]])
plt.figure()
CS = plt.contour(x, y, rv.pdf(pos), colors = 'k')
CS.set_clim(0.01,0.4)
plt.clabel(CS, inline=1, fontsize=10)
plt.show()

如何定义等高线的显示范围?

非常感谢任何帮助。

我只是 post kazemakase 在对我的问题的评论中给出的答案,所以我可以将其标记为已解决。 可以使用 plt.contour() 中的 levels 关键字设置级别。如果想要规则间隔的轮廓线,您可以使用例如计算它们 levels = [rv.pdf(q) for q in np.arange(2.0, 0.0, -0.1)]。我使用负增量来计算 PDF,因为绘图函数需要增加级别。

import numpy as np
from scipy import stats as ss
from matplotlib import pyplot as plt
x, y = np.mgrid[-2.5:2.5:.01, -2.5:2.5:.01]
pos = np.dstack((x, y))
rv = ss.multivariate_normal([0.0, 0.0], [[1.0, 0.], [0., 1.]])
levels = [rv.pdf(q) for q in np.arange(2.0, 0.0, -0.1)]
plt.figure()
CS = plt.contour(x, y, rv.pdf(pos), levels = levels)
plt.clabel(CS, inline=1, fontsize=10)
plt.show()