【问题标题】:How to print the heatmap in a square shape using seaborn?如何使用 seaborn 以正方形打印热图?
【发布时间】:2021-10-18 02:34:52
【问题描述】:

当我运行下面的代码时,我注意到热图没有方形,知道我使用了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);

结果:

【问题讨论】:

    标签: python pandas seaborn heatmap


    【解决方案1】:

    您可以在绘制热图之前使用 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');
    

    请注意,我使用了figsize=(6, 5),而不是正方形figsize=(5, 5)。这是因为在给定的 figsize 上,seaborn 也会放置颜色条,这可能会导致热图被挤压一点。您可能还想根据需要更改这些无花果大小。

    【讨论】:

    • 谢谢,我尝试使用 a=pd.read_csv 而不是使用随机函数读取文件,但它给了我这个错误:DataFrame' object has no attribute 'uniform' 不知道如何阅读它,然后使用 figsize?
    • 直接绘制你的数据框a。我只是简单地使用了 numpy 的 uniform 来生成随机数据。
    • 它给出了相同的结果:(,我是否遗漏了代码中的任何内容:a=pd.read_csv('salam.csv',index_col=0, parse_dates=True, dayfirst=True, skiprows= 2) plt.figure(figsize=(5, 6)) sns.heatmap(a, cmap='viridis');
    • 你做得对,是的。您可以发布您的 csv 文件的示例吗?
    • 当然,使用此链接检查文件:filedropper.com/salam
    【解决方案2】:

    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)
    

    如果你想要一个正方形的绘图,你可以使用set_aspect和数据的形状:

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

    【讨论】:

    • 它缩小了形状本身,但没有缩小仍为矩形的单元格的大小,请使用此链接检查文件并让我知道它是否适用于您:filedropper.com/salam
    • 那么你想要两个输出中的哪一个?方格还是方格?
    • 方形单元格,因为单元格仍然是矩形
    猜你喜欢
    • 2017-05-19
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    • 2014-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    相关资源
    最近更新 更多