import numpy as np
import matplotlib.pyplot as plt
# 创建示例数据
np.random.seed(1)
data = [np.random.normal(0, std, 100) for std in range(1, 4)]
# 绘制箱型图
plt.boxplot(data, patch_artist=True,zorder=0)
# 添加数据点的散点图,并设置参数以避免重叠
for i, d in enumerate(data):
y = np.random.normal(i+1, 0.04, size=len(d))
plt.scatter(y, d, alpha=0.5, color='black',linewidths=0, zorder=1)
# 设置图形标题和坐标轴标签等
plt.title("Box plot with Data Points")
plt.xlabel("Group")
plt.ylabel("Value")
# 调整Y轴范围
plt.ylim(-8, 8)
# 显示图形
plt.show()
注意:代码中有一个参数zorder=1,这个参数是控制图层顺序的。如果不添加,散点会被箱型图遮盖。