import matplotlib.pyplot as pltimport numpy as npplt.style.use('_mpl-gallery')# make data:np.random.seed(10)D = np.random.normal((3, 5, 4), (1.25, 1.00, 1.25), (100, 3))# plotfig, ax = plt.subplots()VP = ax.boxplot(D, positions=[2, 4, 6], widths=1.5, patch_artist=True, showmeans=False, showfliers=False, medianprops={"color": "white", "linewidth": 0.5}, boxprops={"facecolor": "C0", "edgecolor": "white", "linewidth": 0.5}, whiskerprops={"color": "C0", "linewidth": 1.5}, capprops={"color": "C0", "linewidth": 1.5})ax.set(xlim=(0, 8), xticks=np.arange(1, 8), ylim=(0, 8), yticks=np.arange(1, 8))plt.show()
# 1. 导入库与设置样式import matplotlib.pyplot as pltimport numpy as npplt.style.use('_mpl-gallery')# 2. 生成数据np.random.seed(10) # 固定随机种子,确保结果可重复。D = np.random.normal((3, 5, 4), (1.25, 1.00, 1.25), (100, 3))# np.random.normal(mean, std, size):生成正态分布随机数。# 生成一个100行3列的数组,每列分别来自均值3,5,4,标准差1.25,1.00,1.25的正态分布# D 是一个形状为 (100, 3) 的数组,每一列对应一个样本# 3. 创建图形与绘制箱线图fig, ax = plt.subplots() # 创建一个图形 (fig) 和一个坐标轴对象 (ax)VP = ax.boxplot(D, positions=[2, 4, 6], widths=1.5, patch_artist=True, showmeans=False, showfliers=False, medianprops={"color": "white", "linewidth": 0.5}, boxprops={"facecolor": "C0", "edgecolor": "white", "linewidth": 0.5}, whiskerprops={"color": "C0", "linewidth": 1.5}, capprops={"color": "C0", "linewidth": 1.5})# D: 数据,形状(100,3),将绘制三个箱线,每一列绘制一个箱线# positions=[2,4,6]: 箱线图在x轴上的位置。# widths=1.5: 箱体的宽度。# patch_artist=True: 填充箱体内部颜色(默认为不填充)# showmeans=False: 不显示均值点。# showfliers=False: 不显示离群值。# medianprops: 中位线属性,白色,线宽0.5。# boxprops: 箱体属性,填充颜色C0(默认蓝色),边缘白色,线宽0.5。# whiskerprops: 须线(从箱体延伸出的竖线)的属性,颜色C0,线宽1.5。# capprops: 帽线,须线末端横线(帽)的属性,颜色为 C0,线宽 1.5。# VP 是返回的字典,包含绘制的各个元素的引用,但此处未使用。# 4. 设置坐标轴范围与刻度ax.set(xlim=(0, 8), xticks=np.arange(1, 8), ylim=(0, 8), yticks=np.arange(1, 8))# xlim=(0, 8):x 轴显示范围从 0 到 8# xticks=np.arange(1, 8):x 轴刻度设为 1 到 7# y轴同x轴# 5. 显示图形plt.show()