问题
海洋热图在jupyter notebook和python脚本格式中消亡。
文献综述
seaborn failing,是我能找到的最接近于类似问题的问题,但这不是完全相同的问题。我的只是一个独立的海路不会打印热图的问题。
症状
import numpy as np; np.random.seed(0)
import seaborn as sns; sns.set()
import matplotlib.pyplot as plt
M=np.ones((32000,32000))
ax = sns.heatmap(M)
plt.show()使用上面的代码,我在jupyter笔记本中收到一条kernel stopped running消息,在等待热图20分钟后在我的终端中收到一条[1]+ Killed: 9 python bible_ai_construction.py。
总体目标
我的希望是能够在数据集中调查每个状态之间的关系。每个州都提供给我,以及与之相关的所有其他州的列表,下面是一个小示例:
d={'a':['b','c','e'],'b':['a','c'],'c':['a'],'d':['a','e','b'],'e':['a','c']}
#set the new dictionary to one_hot_encoding representation
d={'a':[0,1,1,0,1],'b':[1,0,1,0,0],'c':[1,0,0,0,0],'d':[1,1,0,0,1],'e':[1,0,1,0,0]}
#construct matrix
M=np.matrix(list(map(lambda x:x, d.values())))
#apply M to seaborn heatmap, i.e., M.shape->(32000,32000)发布于 2018-11-25 00:22:52
尺寸为32000x32000的矩阵将有超过十亿个元素。在我的电脑上,这个numpy数组的内存增长到8 8Gb以上。
Seaborn/Matplotlib将无法绘制如此巨大的数组。
你应该在你的矩阵上执行一些聚合方法,装箱等。
简单地绘制这么大的数组是没有好处的,没有人能够从如此详细的图表中推断出任何信息。
发布于 2018-11-28 04:57:36
我认为您应该以某种形式的子采样/汇总形式预览大型数据,然后通过鼠标交互将详细视图与较大的图像连接起来。您可以使用https://github.com/AaronWatters/jp_doodle来实现这一点,实际上我实现了如下内容(使用小得多的数据)作为本笔记本中的最后一个示例:https://github.com/AaronWatters/jp_doodle/blob/master/notebooks/Simple%20Python%20Examples.ipynb
这是一个屏幕截图

左边的图像是全分辨率的图像,中间的图像是全分辨率图像的3x3细节,左边的样本是细节中间的颜色样本。这有点难看,但在完整的图像中有一个灰色的方块,显示了可以使用鼠标拖动的细节的位置。
在您的示例中,您将在左侧显示二次采样的图像,并流式传输来自Python内核的完整大小的细节区域切片。有关将数据从numpy数组流式传输到jp_doodle小部件的示例,请参阅https://github.com/AaronWatters/jp_doodle/blob/master/notebooks/misc/image%20streaming%20demo.ipynb。
https://stackoverflow.com/questions/53459832
复制相似问题