保存为 pdf 时删除 seaborn 热图中的单元格分隔线

Posted

技术标签:

【中文标题】保存为 pdf 时删除 seaborn 热图中的单元格分隔线【英文标题】:Remove lines separating cells in seaborn heatmap when saved as pdf 【发布时间】:2015-01-18 08:54:09 【问题描述】:

我想删除在保存的 pdf 中分隔单元格的行。我尝试设置 linewidth=0.0,但线条仍然显示。

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

data = pd.DataFrame(np.arange(10*10).reshape(10,10))
fig, ax = plt.subplots()
ax = sns.heatmap(data,linewidths=0.0)
fig.savefig('***_lines.pdf')

图像是生成的 pdf 的屏幕截图。

【问题讨论】:

【参考方案1】:

仅在保存为 PDF 文件时才会出现此问题,如果您使用 PNG 之类的文件,则它会正常工作。已向开发人员提出了一个 Github 问题 here。

与此同时,开发人员 mwaskom 找到了一个修复方法,您可以将 rasterized=True 添加到修复该问题的 seaborn.heatmap 函数中。然后你的代码变成:

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

data = pd.DataFrame(np.arange(10*10).reshape(10,10))
fig, ax = plt.subplots()
ax = sns.heatmap(data,linewidths=0.0, rasterized=True)
fig.savefig('***_lines.pdf')

【讨论】:

以上是关于保存为 pdf 时删除 seaborn 热图中的单元格分隔线的主要内容,如果未能解决你的问题,请参考以下文章

seaborn 热图显示轴标签,但当 df.corr 为 NaN 时没有值

创建 seaborn 热图时“无法将字符串转换为浮点数”ValueError

热图中的日期轴 seaborn

更改 seaborn 热图中的某些方块

Seaborn 热图阴谋失败

根据 Seaborn 中的散点图绘制热图