matplotlib箱线图中位数用红线标注
时间: 2024-07-30 20:01:29 浏览: 73
利用Python – Matplotlib 绘制箱线图
在matplotlib中创建箱线图(Boxplot)时,如果你想用红线标注中位数(Median),你可以这样做:
1. 首先,你需要导入`matplotlib.pyplot`库,以及`numpy`用于生成数据。
```python
import matplotlib.pyplot as plt
import numpy as np
```
2. 创建一些示例数据,并计算中位数。
```python
data = np.random.randn(10, 5) # 10组数据,每组有5个随机值
medians = np.median(data, axis=1)
```
3. 使用`boxplot`函数绘制箱线图,并在适当的位置添加中位数线。这里需要先将数据和中位数分开传入`whiskers`和`medians`参数。
```python
fig, ax = plt.subplots()
ax.boxplot(data, positions=np.arange(1, 6), widths=0.5,
whiskers='range', # 使用整个数据范围作为 whiskers
medians='line', # 使用红线表示中位数
medianprops={'color': 'red'}, # 设置中位数线的颜色
showmeans=False) # 可选择性显示平均值
# 添加中位数标记
for median, y in zip(medians, np.arange(1, 6)):
ax.plot([median], [y], marker='o', color='red', markersize=4)
plt.xticks(np.arange(1, 6), ['Group 1', 'Group 2', 'Group 3', 'Group 4', 'Group 5'])
plt.ylabel('Values')
plt.title('Boxplot with Median Lines')
plt.show()
```
阅读全文