首页 > 解决方案 > matplotlib/seaborn:第一行和最后一行切成热图的一半

问题描述

当使用 seaborn(以及使用 matplotlib 的相关矩阵)绘制热图时,第一行和最后一行被减半。当我运行我在网上找到的这个最小代码示例时也会发生这种情况。

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

data = pd.read_csv('https://raw.githubusercontent.com/resbaz/r-novice-gapminder-files/master/data/gapminder-FiveYearData.csv')
plt.figure(figsize=(10,5))
sns.heatmap(data.corr())
plt.show()

并得到这个结果(我还不允许嵌入图像) y 轴上的标签位于正确的位置,但行并不完全存在。

几天前,它按预期工作。从那以后,我安装了 texlive-xetex,所以我再次删除了它,但它并没有解决我的问题。

有什么想法我可能会错过吗?

标签: pythonmatplotlibseaborn

解决方案


不幸的是matplotlib 3.1.1破坏了 seaborn 热图;并且通常具有固定刻度的倒置轴。
这在当前的开发版本中已修复;你可能因此

  • 恢复到 matplotlib 3.1.0
  • 使用 matplotlib 3.1.2 或更高版本
  • 手动设置热图限制 ( ax.set_ylim(bottom, top) # set the ylim to bottom, top)

推荐阅读