2016-03-09 98 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