蜂群图可以不重叠的显示各数据点的分布。相对于散点图,所绘制的点彼此靠近且不会重叠,能有效呈现出点分布的局部密度信息。
基于seaborn
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# 自定义数据
my_variable = np.random.normal(loc=10, scale=5, size=100)
# 利用swarmplot函数绘制蜂群图
sns.swarmplot(y=my_variable)
plt.show()
自定义蜂群图一般是结合使用场景对相关参数进行修改,并辅以其他的绘图知识。参数信息可以通过官网进行查看,其他的绘图知识则更多来源于实战经验,大家不妨将接下来的绘图作为一种学习经验,以便于日后总结。
seaborn主要利用swarmplot
绘制蜂群图,可以通过seaborn.swarmplot[1]了解更多用法
绘制多个蜂群图
import matplotlib as mpl
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# 自定义数据(两组)
sample_size = 100
data_group1 = np.random.normal(loc=2, scale=2, size=sample_size)
data_group2 = np.random.normal(loc=5, scale=2, size=sample_size)
data_combined = np.concatenate([data_group1, data_group2])
category_feature = ['Group 1'] * sample_size + ['Group 2'] * sample_size # 定义类别
# 绘制蜂群图
plt.figure(figsize=(8, 6))
sns.swarmplot(x=category_feature,
y=data_combined,
palette='Set2',
hue=category_feature,
)
plt.title('Swarm Plot')
plt.xlabel('Category')
plt.ylabel('Data')
plt.show()
修改参数
import matplotlib as mpl
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# 自定义数据
my_variable = np.random.normal(loc=10, scale=5, size=100)
# 修改颜色、方向
sns.swarmplot(x=my_variable,
color='red',
edgecolor='black',
linewidth=0.9,
)
plt.show()
以上通过seaborn的swarmplot
可以快速绘制蜂群图,并通过修改参数或者辅以其他绘图知识自定义各种各样的蜂群图来适应相关使用场景。
共勉~
[1]
seaborn.swarmplot: https://seaborn.pydata.org/generated/seaborn.swarmplot.html