2017-06-17 78 views
-1

在python(2.7)中做熱圖的最佳方式是什麼?我找到了heatmap.py模塊,我想知道人們是否有任何使用它的建議,或者是否有其他軟件包能夠很好地工作。Python的熱圖(基本和複雜)

我正在處理漂亮的基本數據,如疊加在圖像上的xy = np.random.rand(1000,2)

雖然還有一件事我想嘗試,這是做一個熱圖,縮放到不同的熱圖。例如,我有

attempts = np.random.rand(5000,2) 
successes = np.random.rand(500,2) 

而且我想要一個相對於嘗試密度的成功熱圖。這可能嗎?

回答

1

Seaborn是一個相當普遍使用的庫製作漂亮的情節,並有一個heatmap function。 Seaborn在引擎蓋下使用matplotlib。

import numpy as np 
import seaborn as sns 

xy = np.random.rand(1000,2) 
sns.heatmap(xy, yticklabels=100) 

enter image description here

關於你提到的第二個問題,我不知道你的意思。但我的建議是創建一個numpy數組或熊貓數據框,其中「成功[相對於嘗試的密度進行了縮放]」,但是您的意思是,然後將該縮放的數組或數據幀傳遞給sns.heatmap

+0

我有所有觀測值的x,y數據,以及觀測類別1的x,y數據。我想要做一個觀測類的第一個熱圖,它將點的熱量換算成點的熱量總人口。 將第一個圖表視爲每個國家/地區的男性,而第二個圖表是每個國家/地區的男性人均數字。 – riders994

+0

是否有一個缺點,我建議生成一個'scaled_dataset',然後將其傳遞給'sns.heatmap'?我認爲這是一個比試圖讓熱圖功能動態縮放它更好的方法 –

+0

我會嘗試一下,我只是確保你明白了我在嘗試之前所做的一切,以防出現不同方法來做到這一點。 – riders994

-1

最基本熱圖,你可以得到的是一個形象的情節:

import matplotlib.pyplot as plt 
import numpy as np 

xy = np.random.rand(100,2) 
plt.imshow(xy, aspect="auto") 
plt.colorbar() 

plt.show() 

enter image description here

注意,使用更多的積分比你有像素,顯示熱圖可能沒有什麼太大的意義。

當然也有不同的方法來繪製熱圖,你可以通過matplotlib example gallery並查看哪個圖最吸引你。