六边形分箱图
六边形分箱图(Hexagonal Binning)是一种由六边形为主要元素的统计图表。
在绘制散点图时,如果散点的数量过多时,数据点很可能会重叠在一起,以至于很难分辨出趋势,同时也不能很好的看出散点分布的群体化特征。而六边形分箱图就能利用图形颜色的深浅来直观的表示数据的集中趋势。
Python绘制六边形分箱图
import matplotlib.pyplot as plt
import numpy as np
# 生成标准正态分布的随机数据
n = 1000
x = np.random.standard_normal(n)
y = 12 * np.random.standard_normal(n)
# 绘制散点图
plt.figure(1)#图像编号
plt.figure(figsize=(7,6))#图像尺寸
plt.scatter(x,y,s=25,c="hotpink",alpha=0.6)
plt.savefig('1.png',dpi=600)
、
#绘制六边形分箱图
plt.figure(2)
plt.figure(figsize=(7,6))
plt.hexbin(x,y,gridsize=25,cmap='afmhot_r')
plt.savefig('2.png',dpi=600)
plt.figure(3)
plt.figure(figsize=(7,6))
plt.hexbin(x,y,gridsize=15,cmap='Greys')
plt.savefig('3.png',dpi=600)
plot.scatter()函数
1、 x, y → 散点的坐标
2、 s → 散点的面积
3、 c → 散点的颜色(默认值为蓝色,‘b’,其余颜色同plt.plot( ))
4、 alpha → 散点透明度([0, 1]之间的数,0表示完全透明,1则表示完全不透明)
5、 linewidths →散点的边缘线宽
6、 edgecolors → 散点的边缘颜色
7、 marker → 散点样式(默认值为实心圆,‘o’,其余样式同plt.plot( ))
plot.hexbin()函数
1、 gridsize:设置六边形格子的大小,用于调整数据点分布的精度。
2、 cmap:设置颜色映射,用于将数据点的数量映射为不同的颜色。
3、 bins:设置将数据点映射到的颜色层数。
4、 linewidths:设置格子边框的粗细。
以下是第一张散点图,可以看到在很多的数据点是,数据的集中趋势是很难表示出来的
接着我们再看六边形分箱图
颜色更深的地方表示更密集的数据点
我们可以修改plot.hexbin()函数去修改图形的颜色和六边形的大小来得到自己需要的图形