看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
六边形分箱图(Hexagonal Binning),也称六边形箱体图,或简称六边形图,是一种由六边形为主要元素的统计图表。它是一种比较特殊的图表,既是散点图的延伸,又兼具直方图和热力图的特征。
您可以使用 DataFrame.plot.hexbin() 创建六边形图。 如果您的数据过于密集而无法单独绘制每个点,则六边形图可以替代散点图。
df = pd.DataFrame(np.random.randn(1000, 2), columns=['a', 'b'])
df['b'] = df['b'] + np.arange(1000)
df.plot.hexbin(x='a', y='b', gridsize=25)
一个有用的关键字参数是gridsize。 它控制x方向上的六边形数量,默认为100。较大的网格尺寸意味着更多更小的箱体。
默认情况下,将计算每个(x,y)点周围的计数的直方图。 您可以通过将值传递给C和reduce_C_function 参数来指定备用聚合。 C 指定每个(x,y)点的值,reduce_C_function 是一个参数的函数,该参数将 bin 中的所有值减少为一个数字(例如,平均值,最大值,总和,标准差)。 在此示例中,位置由列 a 和 b 给出,而值由列 z 给出。 每个箱会使用 NumPy 的 max 函数进行汇总。
n = 500
df = pd.DataFrame({
'coord_x': np.random.uniform(-3, 3, size=n),
'coord_y': np.random.uniform(30, 50, size=n),
'observations': np.random.randint(1,5, size=n)
})
ax = df.plot.hexbin(x='coord_x',
y='coord_y',
C='observations',
reduce_C_function=np.sum,
gridsize=10,
cmap="viridis")
更多参数及方法访问 matplotlib hexbin 官方文档。
更新时间:2020-06-24 10:15:03 标签:pandas 热力图 六边形分箱图