【问题标题】:how to understand Seaborn's heatmap annotation format?如何理解 Seaborn 的热图标注格式?
【发布时间】:2019-06-27 15:10:00
【问题描述】:

我正在寻找一种方法,通过指定 fmt 关键字,在 seaboarn 的热图中将“0.0045”显示为“0.45%”:

sns.heatmap(data, annot=True, fmt='??')

但是,我没有找到要使用的格式列表。在不同的例子之间搜索,我看到了“d”、“.2g”、“.1f”、“.1f%”。但不清楚我们在这里假设的约定是什么。

这是假设人们对格式化格式有共同的理解吗?或者这出现在我错过的文档页面上?

【问题讨论】:

  • 代码是annotation = ("{:" + self.fmt + "}").format(val),所以以pyformat.info开头

标签: python matplotlib seaborn


【解决方案1】:

您可以将.2% 用作fmt,以将您的注释显示为带2 位小数的百分比。以下是一个最小的完整示例。我除以 100 得到你感兴趣的范围内的数字


import numpy as np; np.random.seed(0)
import seaborn as sns; sns.set()
uniform_data = np.random.rand(6, 6)/100
ax = sns.heatmap(uniform_data,annot=True, fmt=".2%")

【讨论】:

    【解决方案2】:

    如果您不知道,.1g 不是指小数位,而是指有效数字的个数。

    【讨论】:

      【解决方案3】:

      在搜索引擎结果的顶部没有一个明确而快速的答案,所以我在这里提供简单的例子:

      .1e = 带 1 个小数点的科学计数法(标准形式)

      .2f = 2 位小数

      .3g = 3 位有效数字

      .4% = 4 位小数的百分比

      关于python字符串格式化程序的更详细解释可以在这里找到:https://docs.python.org/3/library/string.html?highlight=string#formatspec(向下滚动到类型列中带有e、E、f、F等的表)

      【讨论】:

        【解决方案4】:

        我使用 .1f 作为格式说明符

        fig, ax = plt.subplots(figsize=(10,10))   
        sns.heatmap(df.corr(),annot=True,fmt=".1f",ax=ax)
        plt.show()
        

        【讨论】:

          猜你喜欢
          • 2016-05-02
          • 1970-01-01
          • 2020-11-28
          • 2021-03-18
          • 1970-01-01
          • 2016-01-14
          • 2020-10-12
          • 2022-06-10
          相关资源
          最近更新 更多