使用matplotlib、numpy、pandas、xlwings绘制饼状图,给出完整示例以及完整excel数据
时间: 2023-11-16 22:04:32 浏览: 148
以下是使用matplotlib、numpy、pandas、xlwings绘制饼状图的完整示例以及excel数据。
1. Excel数据
首先,我们需要准备excel数据,将数据保存在一个名为“data.xlsx”的文件中。数据包括以下列:
- Category:类别名称
- Amount:每个类别的金额
请注意,数据必须保存在第一个工作表中。
2. Python代码
导入所需的库:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import xlwings as xw
```
加载excel数据:
```python
# 打开Excel文件
wb = xw.Book('data.xlsx')
# 读取第一个工作表
sheet = wb.sheets[0]
# 读取数据
data = sheet.range('A1').options(pd.DataFrame, header=1, index=False, expand='table').value
```
创建饼状图:
```python
# 创建饼状图
plt.pie(data['Amount'], labels=data['Category'], autopct='%1.1f%%')
plt.axis('equal')
plt.title('Expenses by Category')
plt.show()
```
完整代码如下:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import xlwings as xw
# 打开Excel文件
wb = xw.Book('data.xlsx')
# 读取第一个工作表
sheet = wb.sheets[0]
# 读取数据
data = sheet.range('A1').options(pd.DataFrame, header=1, index=False, expand='table').value
# 创建饼状图
plt.pie(data['Amount'], labels=data['Category'], autopct='%1.1f%%')
plt.axis('equal')
plt.title('Expenses by Category')
plt.show()
```
3. 结果
运行代码后,将生成一个饼状图,显示每个类别的金额占总金额的百分比。
![pie-chart](https://i.imgur.com/6xjx6CX.png)
阅读全文