【发布时间】: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