【问题标题】:Seaborn heatmap, lines not of the same widthSeaborn 热图,线条宽度不同
【发布时间】:2020-02-10 21:13:22
【问题描述】:

我正在使用 Seaborn 绘制热图。如果我设置用“linewidth = value”划分每个单元格的线条,则会打印线条,但它们的宽度不一样。 (例如,在我的图中,外部垂直线比内部垂直线细,1 和 2 之间的水平线比其他两条粗)。

这是重现问题的简单代码:

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns;sns.set()

plt.figure(figsize=(10,5)) 
df = np.random.rand(4,6)
ax = sns.heatmap(df,cmap="Blues",linewidths=1,linecolor='k')
plt.show()

这是我得到的热图:

为什么linewidths都为1时,线条的宽度不同?

让我们忽略第一行和最后一行单元格比其他单元格小的事实,我知道这是 matplotlib 版本的问题。

【问题讨论】:

  • @ImportanceOfBeingErnest 我编辑了问题以更好地解释我的意思。我不是在问第一行和最后一行单元格被切成两半,而是关于划分所有单元格的线的宽度不同。
  • 我想这是像素捕捉的问题。它不应该出现在 pdf 输出中,并且 dpi 越高,它也应该越不明显。

标签: python matplotlib seaborn heatmap


【解决方案1】:

我遇到了同样的问题。 将rasterized=False 作为参数传递给 sns.heatmap() 为我修复了它。

【讨论】:

    猜你喜欢
    • 2020-10-11
    • 2020-02-10
    • 2017-08-21
    • 1970-01-01
    • 2019-05-12
    • 2021-01-20
    • 2019-08-25
    • 1970-01-01
    相关资源
    最近更新 更多