簡體   English   中英

如何使用 seaborn 以方形打印熱圖?

[英]How to print the heatmap in a square shape using seaborn?

當我運行下面的代碼時,我注意到熱圖沒有方形,我知道我使用了square=True但它不起作用? 知道如何以方形格式打印熱圖嗎? 謝謝你!

代碼:

from datetime import datetime
import numpy as np
import pandas as pd
import matplotlib as plt
import os
import seaborn as sns

temp_hourly_A5_A7_AX_ASHRAE=pd.read_csv('C:\\Users\\cvaa4\\Desktop\\projects\\s\\temp_hourly_A5_A7_AX_ASHRAE.csv',index_col=0, parse_dates=True, dayfirst=True, skiprows=2)
sns.heatmap(temp_hourly_A5_A7_AX_ASHRAE,cmap="YlGnBu", vmin=18, vmax=27, square=True, cbar=False, linewidth=0.0001);

結果:

熱圖結果

square=True應該有方形單元格,下面是一個工作示例:

import pandas as pd
import numpy as np
import seaborn as sns

df = pd.DataFrame(np.tile([0,1], 15*15).reshape(-1,15))

sns.heatmap(df, square=True)

方形細胞

但是,如果您想要plot的方形,您可以使用set_aspect和數據的形狀:

ax = sns.heatmap(df)
ax.set_aspect(df.shape[1]/df.shape[0]) # here 0.5 Y/X ratio

方形圖

您可以使用 matplotlib 並在繪制熱圖之前設置 figsize。

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
rnd = np.random.default_rng(12345)
data = rnd.uniform(-100, 100, [100, 50])

plt.figure(figsize=(6, 5))
sns.heatmap(data, cmap='viridis');

熱圖 seaborn

請注意,我使用figsize=(6, 5)而不是正方形figsize=(5, 5) 這是因為在給定的圖形尺寸上,seaborn 還放置了顏色條,這可能會導致熱圖被擠壓一點。 您可能還想根據需要更改這些無花果尺寸。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM