python 操作excle生成数据图
时间: 2024-03-20 12:40:09 浏览: 22
要在 Python 中操作 Excel 并生成数据图,可以使用 openpyxl 和 matplotlib 库。以下是一个简单的示例代码:
```python
import openpyxl
from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference
import matplotlib.pyplot as plt
# 创建 Excel 文件并写入数据
workbook = Workbook()
worksheet = workbook.active
worksheet['A1'] = 'Category'
worksheet['B1'] = 'Value 1'
worksheet['C1'] = 'Value 2'
worksheet['A2'] = 'A'
worksheet['B2'] = 10
worksheet['C2'] = 20
worksheet['A3'] = 'B'
worksheet['B3'] = 20
worksheet['C3'] = 30
workbook.save('data.xlsx')
# 读取 Excel 文件中的数据
workbook = openpyxl.load_workbook('data.xlsx')
worksheet = workbook.active
data = []
for row in worksheet.iter_rows(min_row=2, values_only=True):
data.append(row)
# 生成柱状图
categories = [x[0] for x in data]
values1 = [x[1] for x in data]
values2 = [x[2] for x in data]
fig, ax = plt.subplots()
ax.bar(categories, values1, label='Value 1')
ax.bar(categories, values2, bottom=values1, label='Value 2')
ax.legend()
plt.xticks(rotation=45)
plt.xlabel('Category')
plt.ylabel('Value')
plt.title('Data Chart')
plt.savefig('chart.png')
# 将图表插入 Excel 文件
worksheet.add_chart(BarChart(), 'D1')
chart = worksheet['D1']
chart.title = 'Data Chart'
chart.x_axis.title = 'Category'
chart.y_axis.title = 'Value'
chart.add_data(Reference(worksheet, min_col=2, min_row=1, max_row=3), titles_from_data=True)
chart.add_data(Reference(worksheet, min_col=3, min_row=1, max_row=3), titles_from_data=True)
chart.set_categories(Reference(worksheet, min_col=1, min_row=2, max_row=3))
chart.shape = 4
workbook.save('data.xlsx')
```
这个示例代码创建一个 Excel 文件,写入一些数据,然后读取数据并生成一个柱状图。最后,将图表插入 Excel 文件并保存。这个代码需要安装 openpyxl 和 matplotlib 库。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)