首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >海虫?热图绘制中的不一致

海虫?热图绘制中的不一致
EN

Stack Overflow用户
提问于 2015-12-19 21:00:56
回答 2查看 2.5K关注 0票数 8

此代码:

代码语言:javascript
复制
%matplotlib inline

#import numpy as np; np.random.seed(0)
import matplotlib.pyplot as plt
import seaborn as sns #; sns.set()

flights = sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")

sns.heatmap(flights, annot=True, linewidths=.2, fmt="d")

#plt.show()

将得到类似于官方结果 (在这里看/核实一下)的结果:

但是,如果禁用内联绘图并启用plt.show(),结果将如下所示:

也就是说,注解除了一个单元格和y标签的方向是错误的,如果内联绘图是禁用的。因为这是我所做的唯一改变,我认为这是seaborn的一个错误,它不能产生一致的结果。

有人能确认一下吗?

请问有可能的解决办法吗?

感谢Sergey的反馈,以下是我的所有相关版本:

代码语言:javascript
复制
Python: 3.5.0 |Anaconda 2.4.0 (64-bit)| (default, Dec  1 2015, 11:46:22) [MSC v.1900 64 bit (AMD64)]
IPython: 4.0.0
Matplotlib: 1.5.0
Seaborn: 0.6.0

所以我认为是Python3或Matplotlib: 1.5造成了问题。我将添加Python3标记,以防万一。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2016-01-08 11:31:44

实际上,此bug已在Seaborn页面这里中报告。从注释中可以看出,matplotlib使用MacOSXTkAggQtAgg后端时出现了问题(在IPython/木星笔记本中使用%matplotlib notebook也是如此)。

原则上,将后端更改为不同的后端会使情节按预期工作(如您的第一个图所示)。在matplotlib文档中,您可以检查您正在使用的后端

代码语言:javascript
复制
matplotlib.get_backend()

并将其更改为另一个

代码语言:javascript
复制
matplotlib.use()

不幸的是,这个问题似乎出现在所有可用的交互式后端中。如果这是您所需要的,那么您可能必须等到bug解决(您可以跟踪GitHub页面上的任何进展)。

如果您乐于为您的绘图生成一个PNG/PDF文件,而不是一个交互式窗口,那么Agg后端应该可以正常工作,只需对代码做一些修改:

代码语言:javascript
复制
import matplotlib
matplotlib.use("Agg")

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

flights = sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")

sns.heatmap(flights, annot=True, linewidths=.2, fmt="d")

plt.savefig("heatmap.png")
票数 3
EN

Stack Overflow用户

发布于 2016-01-04 08:41:33

对于我来说,代码产生的结果与我是否使用%matplotlib inline并使其成为plt.show()无关,没有发现bug。

检查所有相关内容的版本:

代码语言:javascript
复制
import sys
print 'Python: ' + sys.version

import IPython
print 'IPython: ' + IPython.__version__

import matplotlib
print 'Matplotlib: ' + matplotlib.__version__

import seaborn
print 'Seaborn: ' + seaborn.__version__

我的版本供参考:

代码语言:javascript
复制
Python: 2.7.10 |Anaconda 2.4.0 (64-bit)| (default, Oct 21 2015, 19:35:23) [MSC v.1500 64 bit (AMD64)]
IPython: 4.0.0
Matplotlib: 1.4.3
Seaborn: 0.6.0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34375363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档