用matplotlib画箱线图,用横线标出中位数和均值,加上图例
时间: 2023-07-12 11:47:33 浏览: 76
好的,以下是用matplotlib画箱线图,并标出中位数和均值的代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据
data = np.random.normal(size=(100,))
# 画箱线图
fig, ax = plt.subplots()
ax.boxplot(data)
# 标出中位数和均值
median = np.median(data)
mean = np.mean(data)
ax.axhline(median, color='r', linestyle='-', label='Median')
ax.axhline(mean, color='g', linestyle='-', label='Mean')
# 添加图例
ax.legend()
plt.show()
```
这段代码生成了一个随机数据的箱线图,并在图中标出了中位数和均值,也加上了图例。你可以根据需要修改数据并运行代码。
相关问题
用matplotlib画4个箱线图,用横线标出中位数和均值,加上图例
好的,以下是用matplotlib画四个箱线图,并标出中位数和均值的代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成四组随机数据
data1 = np.random.normal(size=(100,))
data2 = np.random.normal(loc=2.0, size=(100,))
data3 = np.random.normal(loc=3.0, size=(100,))
data4 = np.random.normal(loc=4.0, size=(100,))
# 画四个箱线图
fig, axs = plt.subplots(2, 2, figsize=(8, 8))
axs[0, 0].boxplot(data1)
axs[0, 1].boxplot(data2)
axs[1, 0].boxplot(data3)
axs[1, 1].boxplot(data4)
# 标出中位数和均值
medians = [np.median(data1), np.median(data2), np.median(data3), np.median(data4)]
means = [np.mean(data1), np.mean(data2), np.mean(data3), np.mean(data4)]
for i in range(len(medians)):
axs[i//2, i%2].axhline(medians[i], color='r', linestyle='-', label='Median' if i==0 else None)
axs[i//2, i%2].axhline(means[i], color='g', linestyle='-', label='Mean' if i==0 else None)
# 添加图例
axs[0, 0].legend()
plt.show()
```
这段代码生成了四个随机数据的箱线图,并在图中标出了中位数和均值,也加上了图例。你可以根据需要修改数据并运行代码。
用matplotlib画4组数据的箱线图,用横线标出中位数和均值,加上图例
好的,以下是用matplotlib画四组数据的箱线图,并标出中位数和均值的代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成四组随机数据
data1 = np.random.normal(size=(100,))
data2 = np.random.normal(loc=2.0, size=(100,))
data3 = np.random.normal(loc=3.0, size=(100,))
data4 = np.random.normal(loc=4.0, size=(100,))
# 画箱线图
fig, ax = plt.subplots()
ax.boxplot([data1, data2, data3, data4])
# 标出中位数和均值
medians = [np.median(data1), np.median(data2), np.median(data3), np.median(data4)]
means = [np.mean(data1), np.mean(data2), np.mean(data3), np.mean(data4)]
for i in range(len(medians)):
ax.axhline(medians[i], color='r', linestyle='-', label='Median' if i==0 else None)
ax.axhline(means[i], color='g', linestyle='-', label='Mean' if i==0 else None)
# 添加图例
ax.legend()
plt.show()
```
这段代码生成了四组随机数据的箱线图,并在图中标出了中位数和均值,也加上了图例。你可以根据需要修改数据并运行代码。