Python实现在Excel文件中写入图表

以下是Python实现在Excel文件中写入图表的完整实例教程。

前置条件

在开始之前,需要确保已经安装好以下两个Python包:

  • openpyxl:用于读取和写入Excel文件。
  • matplotlib:用于绘制图表。

安装方法:在命令行中输入pip install openpyxl matplotlib

实现过程

  1. 导入必要的包

首先需要导入openpyxl和matplotlib的包:

import openpyxl
import matplotlib.pyplot as plt
  1. 创建Excel工作簿

选择好要写入图表的Excel文件(假设为example.xlsx),使用openpyxl创建文件对象,打开该Excel文件并定位到指定的工作表:

wb = openpyxl.load_workbook('example.xlsx')
ws = wb['Sheet1']

在这里,我们选择打开example.xlsx文件的Sheet1工作表。

  1. 准备数据

在代码中手动指定一个数据源(不一定非得是手动输入,可以通过读取数据库或者CSV文件等方式获得数据),这里演示一个简单的例子:

data = {'A': 15, 'B': 35, 'C': 20, 'D': 30}

这个字典变量表示一个有四条数据的数据源,A、B、C、D是四个类别,15、35、20、30是它们各自所对应的数值(这里数值的单位并没有特指)。

  1. 绘制图表

使用matplotlib库中提供的函数来绘制图表,并保存到指定的文件中:

# 构建图表
plt.bar(list(data.keys()), list(data.values()))

# 保存图表到文件
plt.savefig('chart.png')

这个例子中使用matplotlib库的bar函数创建了一个简单的柱状图,其中keys()函数返回字典中所有键的列表,values()函数返回字典中所有值的列表。最后将图表保存到当前目录下的chart.png文件中。

  1. 将图表写入Excel

将绘制好的图表插入到Excel文件中,使用openpyxl库的add_picture()函数实现:

# 插入图片到指定的单元格
img = openpyxl.drawing.image.Image('chart.png')
ws.add_picture(img, 'E3')

这里将绘制好的图表插入到了Sheet1工作表中的单元格E3中。

  1. 保存并关闭Excel工作簿

完成图表数据的写入操作后,需要将Excel文件保存,同时关闭Excel工作簿:

wb.save('example.xlsx')
wb.close()

这个例子中保存了example.xlsx文件,并关闭了该Excel工作簿。

示例说明

这里提供两个示例,第一个示例是使用实时获取的天气数据绘制24小时内的气温变化图表,并将图表插入到Excel中;第二个示例是使用手动输入的数据绘制每个工厂出现次数的柱状图,并将图表插入到Excel中。

示例一

import requests
import openpyxl
import matplotlib.pyplot as plt
from datetime import datetime

# 获取天气数据
response = requests.get('https://www.apiopen.top/weatherApi?city=武汉')
data = response.json()['data']['forecast']

# 构建气温变化数据List
temp_data = []
for i in range(24):
    temp_data.append(int(data[i]['high'].replace('℃', '')))

# 创建Excel工作簿
wb = openpyxl.load_workbook('example.xlsx')
ws = wb['Sheet1']

# 构建图表
plt.plot(range(1, 25), temp_data)
plt.title('24小时气温变化')
plt.xlabel('时间(24小时制)')
plt.ylabel('温度(℃)')
plt.savefig('chart.png')

# 插入图片到指定的单元格
img = openpyxl.drawing.image.Image('chart.png')
ws.add_picture(img, 'E3')

# 保存并关闭Excel工作簿
wb.save('example.xlsx')
wb.close()

这个示例首先使用requests库获取天气数据,然后提取数据中24小时内的高温数据,并绘制了一个折线图。最后将生成的图表插入到Excel文件中。

示例二

import openpyxl
import matplotlib.pyplot as plt

# 准备数据
data = {'A': 15, 'B': 35, 'C': 20, 'D': 30}

# 创建Excel工作簿
wb = openpyxl.load_workbook('example.xlsx')
ws = wb['Sheet1']

# 构建图表
plt.bar(list(data.keys()), list(data.values()))
plt.title('每个工厂出现次数')
plt.xlabel('工厂')
plt.ylabel('出现次数')
plt.savefig('chart.png')

# 插入图片到指定的单元格
img = openpyxl.drawing.image.Image('chart.png')
ws.add_picture(img, 'E3')

# 保存并关闭Excel工作簿
wb.save('example.xlsx')
wb.close()

这个示例手动创建了一个名为data的字典,其中四个键值对分别表示的是四个工厂(A、B、C、D)的出现次数。代码中使用plt.bar()绘制了一个简单的柱状图,然后将生成的图表插入到Excel文件中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现在Excel文件中写入图表 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • Python生成随机数的一个标准库-random

    1.介绍 Random库Python中用于生成随机数的一个标准库。计算机没有办法产生真正的随机数,但它可以产生伪随机数。 伪随机数是计算机按照一定的运算规则产生的一些数据,只不过这些数据表现为随机数的形式。计算机中采用梅森旋转算法生成为随机序列,序列中的每一个元素就是伪随机数,由于计算机不能产生真正的随机数,所以伪随机数也就被称为随机数。 Random库包含…

    python 2023年4月27日
    00
  • Python技能树共建之python urllib 模块

    Python技能树共建之pythonurllib模块 Python中的urllib模块是一个用于处理URL的标准库,可以用于发送HTTP请求、处理HTTP响应、解析URL等。在本文中,我们将详细讲解Python urllib模块的用法,并提供两个示例。 urllib模块的组成 urllib模块包含以下四个子模块: urllib.request:用于发送HTT…

    python 2023年5月15日
    00
  • python 输出所有大小写字母的方法

    要输出所有大小写字母,需要借助 Python 的内置模块 string 和循环语句。下面是一些实现的方法: 方法一:直接使用列表推导式 可以使用列表推导式生成大小写字母的列表,然后使用 join 方法将列表中所有字母连接成一个字符串,最后输出即可。 import string lowercase = list(string.ascii_lowercase) …

    python 2023年6月5日
    00
  • python实现下载文件的三种方法

    当我们需要从互联网上下载文件时,Python是一个非常方便且有用的编程语言。在这里,我将为大家详细讲解Python实现下载文件的三种方法。首先,我们需要导入Python的内置库-urllib来下载文件。这个库提供了很多简单但是强大的功能来帮助我们完成下载任务。 方法一:使用urllib库下载文件 我们可以使用库提供的urlretrieve函数来下载文件,这个…

    python 2023年6月3日
    00
  • python dict如何定义

    让我来详细讲解Python字典的定义。 Python字典 Python中的dict是一种可变容器模型,它用于存储键值对。字典被称为映射类型,因为它们使用键来映射值。 字典是无序的,即不支持索引和切片等操作,它的元素是由键值对组成的,每个键值对之间用英文冒号(:)分隔,整个字典用大括号({})括起来。例如: my_dict = {‘name’: ‘Tom’, …

    python 2023年5月13日
    00
  • Pandas DataFrame转换为字典的方法

    将Pandas DataFrame对象转换为字典通常用于将数据传递给其他接收字典类型的函数或程序。下面是将Pandas DataFrame对象转换为字典的方法: 1. 使用to_dict()方法 Pandas DataFrame的to_dict()方法通过将DataFrame的数据转换为一个字典来实现。该方法接受一个orient参数,指定字典的输出方向。默认…

    python 2023年5月13日
    00
  • 浅析Python中的随机采样和概率分布

    浅析Python中的随机采样和概率分布 什么是随机采样 在Python中,随机采样是指从一定数据范围内,按照一定的随机规则取出其中一部分数据的方法。常见的随机采样方法有有放回采样和无放回采样。 如何进行随机采样 在Python中,一般使用random库中的函数实现随机采样。其中,random库中的sample函数可以实现无放回采样,而choices函数可以实…

    python 2023年6月3日
    00
  • 如何在 Python 的测试中获取文件?

    【问题标题】:How can I get files within the tests in Python?如何在 Python 的测试中获取文件? 【发布时间】:2023-04-06 18:29:01 【问题描述】: 我的包结构如下: . ├── my_app │   ├── app.py │   ├── cli.py │   ├── db.py │   …

    Python开发 2023年4月7日
    00
合作推广
合作推广
分享本页
返回顶部