squarein的屬性以sns.heatmap奇怪的方式作業。當我使用亂數繪制熱圖并使用 square 屬性時,它作業正常。

當我用我的矩陣繪制熱圖時,它會正確地創建熱圖。

但是,當我使用 square 屬性時,情節變成了一個小方塊。

我無法弄清楚這里出了什么問題。
uj5u.com熱心網友回復:
嗯,square=True意思是:“將所有單元格顯示為正方形”。將7x560正方形放入繪圖區域的唯一方法是將高度降低約80。換句話說:強烈建議square=False用于水平和垂直方向差異如此大的資料。Seaborn 在這里沒有做錯任何事,它只是滿足您的要求。
如果您希望熱圖是方形的(而不是單元格),您可以使用ax = sns.heatmap(data, square=False)然后ax.set_aspect(data.shape[1] / data.shape[0])。
下面是一個例子:
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
data = np.random.randn(7, 560).cumsum(axis=1).cumsum(axis=0)
data -= data.min(axis=1, keepdims=True)
data /= data.max(axis=1, keepdims=True)
ax = sns.heatmap(data, cmap='turbo', cbar=True, xticklabels=50,
yticklabels=['Grumpy', 'Dopey', 'Doc', 'Happy', 'Bashful', 'Sneezy', 'Sleepy'])
ax.set_aspect(data.shape[1] / data.shape[0])
ax.tick_params(labelrotation=0)
plt.tight_layout()
plt.show()

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/402803.html
標籤:
上一篇:使用Python進行財務資料分析
下一篇:DICOM影像讀取不正確
