2016-03-09 72 views
0

我有两个关于使用contourf绘图函数的问题。我一直在寻找答案,但没有找到答案。cf在contourf中的含义

  1. contourf功能,有一个名为cmap变量。这是什么用途?它的含义是什么? cmap=cm.jet是什么意思?

  2. 当将x,y,z放入contourf然后创建一个色条时,我们如何获得设置色条限制的最小值和最大值?我现在正在手动执行此操作,但无法直接从contourf句柄中获取最小值和最大值?

+0

'cmap'是一张彩色地图,请尝试'cm.gray'进行比较。颜色条应使用您的绘图的最小/最大值。如果我误解了你的问题,为什么不发表一个例子? – roadrunner66

回答

1

cmap kwarg是colormap应用于显示等高线图。如果您没有指定,则使用喷射颜色映射(cm.jet)。您可以将其更改为您需要的任何其他颜色图(即cm.gray)。 matplotlib有大量的colormaps可供选择。

这里是一个快速演示,展示了选定不同颜色映射的两个等高线图。

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的边界的元组。

+0

谢谢你的清晰答案。非常感激。 – user4437416

+0

但是,是否还有任何简单的方法可以找出放入contourf中的z数据的最小值和最大值?如果有一种自动方式,我可以构建levs = np.linspace(min,ma,10000)以将其输入contourf levels参数,而不是先绘制它以获得最大值和最小值。 – user4437416

+1

@ user4437416如果你想这样做,我只会使用数据本身的范围来确定'min'和'ma'。 'min = data.flatten().min()'和'data.flatten().max()' – Suever