首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用散点数据集在MatPlotLib中生成热图

使用散点数据集在MatPlotLib中生成热图
EN

Stack Overflow用户
提问于 2010-03-03 15:42:18
回答 9查看 267K关注 0票数 211

我有一组X,Y数据点(大约10k),这些数据点很容易绘制为散点图,但我想将其表示为热图。

我浏览了MatPlotLib中的示例,它们似乎都已经从热图单元格值开始生成图像。

有没有一种方法可以将一堆完全不同的x,y转换成热图(其中x,y频率较高的区域将“变暖”)?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2010-03-17 17:25:51

如果你不想要六边形,你可以使用numpy的histogram2d函数:

代码语言:javascript
复制
import numpy as np
import numpy.random
import matplotlib.pyplot as plt

# Generate some test data
x = np.random.randn(8873)
y = np.random.randn(8873)

heatmap, xedges, yedges = np.histogram2d(x, y, bins=50)
extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]

plt.clf()
plt.imshow(heatmap.T, extent=extent, origin='lower')
plt.show()

这就产生了一个50x50的热图。比方说,如果你想要512x384,你可以在histogram2d的调用中放入bins=(512, 384)

示例:

票数 212
EN

Stack Overflow用户

发布于 2012-11-05 22:19:29

如果您使用的是1.2.x

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt

x = np.random.randn(100000)
y = np.random.randn(100000)
plt.hist2d(x,y,bins=100)
plt.show()

票数 33
EN

Stack Overflow用户

发布于 2017-03-03 07:57:57

Seaborn现在有了jointplot function,它应该可以在这里很好地工作:

代码语言:javascript
复制
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

# Generate some test data
x = np.random.randn(8873)
y = np.random.randn(8873)

sns.jointplot(x=x, y=y, kind='hex')
plt.show()

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2369492

复制
相关文章

相似问题

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