contourf中cmap的含义

3

关于contourf绘图函数,我有两个问题。我一直在寻找答案但没有找到。

  1. contourf函数中,有一个名为cmap的变量。它是用来干什么的?它的含义是什么?cmap=cm.jet是什么意思?

  2. 当我们将x、y、z输入contourf函数并创建一个色条时,如何获取最小和最大值以设置色条限制?我现在是手动设置的,但是否有办法直接从contourf句柄中获取最小和最大值?


cmap 是一种颜色映射,可以尝试使用 cm.gray 进行比较。色条应该使用您绘制的图形的最小值和最大值。如果我误解了您的问题,为什么不发布一个示例呢? - roadrunner66
1个回答

6
cmap kwarg是显示等高线图所使用的颜色映射。如果您未指定,则使用jet颜色映射(cm.jet)。但您可以将其更改为其他任何颜色映射(例如cm.gray)。matplotlib有许多颜色映射可供选择。
以下是两个选择了不同颜色映射的等高线图的快速演示。
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np

data = np.random.rand(10,10)

plt.subplot(1,2,1)
con = plt.contourf(data, cmap=cm.jet)
plt.title('Jet')
plt.colorbar()

hax = plt.subplot(1,2,2)
con = plt.contourf(data, cmap=cm.gray)
plt.title('Gray')
plt.colorbar()

enter image description here

如果要通过编程方式获取色条的上下限,您可以通过获取contourf绘图对象的clim值来实现。

con = plt.contourf(data);
limits = con.get_clim()

   (0.00, 1.05)

这会返回一个元组,其中包含colorbar的(下限、上限)边界。

感谢您清晰明了的回答。非常感激。 - inquiries
但是是否有任何简单的方法来确定放入contourf中的z数据的最小值和最大值?如果不是先粗略地绘制它以获取最大值和最小值,那么如果有一种自动方式,我可以构建levs = np.linspace(min,ma,10000)放入contourf级别参数中将会很有帮助。 - inquiries
1
如果你想这样做,我会建议直接使用数据本身的范围来确定minmaxmin = data.flatten().min()data.flatten().max() - Suever

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接