Python 2.7 Seaborn'中的潜在图纸缺陷;s';热图';(?)

Python 2.7 Seaborn'中的潜在图纸缺陷;s';热图';(?),python-2.7,matplotlib,heatmap,seaborn,Python 2.7,Matplotlib,Heatmap,Seaborn,考虑以下代码: import seaborn as sb import matplotlib.pyplot as plt import numpy as np def main(): dst = np.ones((100,100),dtype=np.float32) ax = plt.subplots(figsize=(17, 17)) sb.heatmap(dst, linewidths=.5, vmax=np.max(dst), vmin=np.min(dst)

考虑以下代码:

import seaborn as sb
import matplotlib.pyplot as plt
import numpy as np

def main():

    dst = np.ones((100,100),dtype=np.float32)

    ax = plt.subplots(figsize=(17, 17))
    sb.heatmap(dst, linewidths=.5, vmax=np.max(dst), vmin=np.min(dst), square=True, cmap="RdYlBu_r", cbar=False).get_figure().savefig("sb_save.png")

    plt.show()

if __name__ == "__main__": main()
现在保存的绘图如下所示, 这显然是不规则的;另一方面,这是plt.show()的输出, 尽管仔细观察,你仍然能够识别出它的方形单元格大小不均,但总体上还是可以接受的


该行为可能是由于调用savefig的细节而触发的,但我不知道有什么替代方法可以在这里尝试。任何帮助都将不胜感激。

我可以使用matplotlib直接复制此内容,无需导入seaborn:
ax.pcolormesh(dst,线宽=.5,cmap=“RdYlBu\r”,edgecolor=“white”)
。所以这可能更像是一个matplotlib问题;根据你所说的,我只是在试验图形的大小,似乎不规则的图案取决于生成的图形相对于绘图内部的大小。在100x100矩阵具有.5线宽的特殊情况下,
figsize=(16,16)
参数似乎产生了一个可接受的输出——尽管您可以看到涟漪。这似乎是一个问题。正如您所注意到的,增加体形大小似乎可以解决问题。如果您有固定的图形大小,您可以随时提高分辨率(例如,将
dpi=450
添加到您的savefig命令中),谢谢!我学到了一些有用和有趣的东西。