python 读取2个excel数据在一张画布上画2幅箱形子图图且每个箱的颜色不一样
时间: 2024-05-20 21:17:22 浏览: 94
以下是一个示例代码,假设有两个Excel文件"file1.xlsx"和"file2.xlsx",分别有两列数据"col1"和"col2":
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据
data1 = pd.read_excel('file1.xlsx')
data2 = pd.read_excel('file2.xlsx')
# 绘制箱形图
fig, ax = plt.subplots()
ax.boxplot([data1['col1'], data2['col2']], patch_artist=True,
boxprops=dict(facecolor="C0"), # 第一个箱的颜色
capprops=dict(color="C0"), whiskerprops=dict(color="C0"),
flierprops=dict(markerfacecolor="C0", markeredgecolor='none'),
medianprops=dict(color="C0"))
ax.boxplot([data1['col2'], data2['col1']], patch_artist=True,
boxprops=dict(facecolor="C1"), # 第二个箱的颜色
capprops=dict(color="C1"), whiskerprops=dict(color="C1"),
flierprops=dict(markerfacecolor="C1", markeredgecolor='none'),
medianprops=dict(color="C1"))
# 设置x轴标签
ax.set_xticklabels(['data1', 'data2'])
# 显示图形
plt.show()
```
在上面的代码中,我们首先使用Pandas库中的`read_excel`函数读取两个Excel文件的数据,然后使用Matplotlib库中的`boxplot`函数绘制两幅箱形图。`patch_artist=True`表示要填充箱体颜色,`boxprops`、`capprops`、`whiskerprops`、`flierprops`和`medianprops`分别设置了箱体、边缘、须、异常值和中位数的属性。注意到第一个`boxplot`函数绘制的是`data1`的第一列和`data2`的第二列,第二个`boxplot`函数绘制的是`data1`的第二列和`data2`的第一列,这样就可以保证两个箱的颜色不同。最后,我们使用`set_xticklabels`函数设置x轴标签,将"data1"和"data2"显示在x轴上。运行上述代码,就可以得到两幅箱形图,如下所示:
![boxplot.png](https://cdn.jsdelivr.net/gh/xczhang06/cdn/img/boxplot.png)
阅读全文