【问题标题】:Columnwise heatmap in seabornseaborn中的列式热图
【发布时间】:2020-10-12 05:43:11
【问题描述】:

Seaborn 热图将热图应用于所有行和列。如何按列应用热图,即每列的最大值是最亮的 - 例如查看每天最繁忙的时间?

【问题讨论】:

    标签: pandas seaborn


    【解决方案1】:

    实现这一目标的最简单方法是对每列中的数据进行规范化。首先让我们为示例生成一些数据:

    # Generate some data to show example
    
    import seaborn as sns
    import pandas as pd
    import numpy as np; np.random.seed(8)
    
    days = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
    hours = list(range(8,18))
    
    example_peak_hour = np.array([0, 1, 2, 3, 6, 7, 8, 12, 7, 3])
    data = [p*example_peak_hour for p in np.random.randint(5, 50, len(days))]
    
    df = pd.DataFrame(np.array(data).T, columns=days, index=hours)
    

    使用 searborn 热图绘制它并使用 df.max() 对其进行标准化):

    sns.heatmap(sns.heatmap(df/df.max()))
    

    You can check how it looks here

    【讨论】:

    • 谢谢!我试图看到的是每天的最长小时数......我正在更新我的问题以澄清使用你的数据。
    • 等一下,我是个白痴。只是数据的生成方式乍一看很奇怪。看起来它完全符合我的需要 - 谢谢!
    猜你喜欢
    • 2018-05-15
    • 2015-09-12
    • 2016-05-02
    • 1970-01-01
    • 2019-05-25
    • 2021-11-01
    • 2020-08-04
    • 2020-01-13
    • 1970-01-01
    相关资源
    最近更新 更多