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日

相关文章

  • 无法通过 Homebrew 安装 Python 2.7.3 在 OSX Lion 上导入 wxPython

    【问题标题】:Can’t import wxPython on OSX Lion with Python 2.7.3 installed via Homebrew无法通过 Homebrew 安装 Python 2.7.3 在 OSX Lion 上导入 wxPython 【发布时间】:2023-04-06 14:40:01 【问题描述】: 从这个包http:/…

    Python开发 2023年4月7日
    00
  • Python实现的远程登录windows系统功能示例

    接下来我将为你详细讲解如何实现“Python实现的远程登录windows系统功能示例”的完整攻略。 问题概述 在本例中,我们将演示如何通过Python编写的程序,实现远程登录windows系统的功能。通过此程序,你可以轻松实现远程控制你的Windows系统,并完成各种操作。 实现步骤 1. 安装依赖库 在开始之前,你需要安装如下Python依赖库: pypi…

    python 2023年5月30日
    00
  • python 算法题——快乐数的多种解法

    下面是关于“Python算法题——快乐数的多种解法”的完整攻略。 1. 题目描述 快乐数是指:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,或者是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。 例如,19 是一个快乐数,计算过程如下: 1^2 + 9^2 = 828^2 + 2^2 = …

    python 2023年5月13日
    00
  • Python hmac模块使用实例解析

    在Python中,可以使用hmac模块来计算消息的哈希值。以下是Python hmac模块使用实例解析的详细攻略: 计算消息的哈希值 要计算消息的哈希值,可以使用hmac模块。以下是计算消息的哈希值的示例: import hmac message = b’Hello, World!’ key = b’secret’ h = hmac.new(key, mes…

    python 2023年5月14日
    00
  • Excel 如何只复制单元格公式而不复制格式

    以下是在 Excel 中只复制单元格公式而不复制格式的完整攻略: 方法一:使用“公式”选项 在 Excel 中,选中要复制的单元格或区域。 右键单击选中的单元格区域,选择“复制”或按下“Ctrl + C”键。 选中要贴到的单元格或区域。 在开始”选项卡中,选择“剪贴板”组。 单击“粘贴”按钮。 在弹出的“粘选项”对话框中,选择“公式”选项。 点击“确定”按钮…

    云计算 2023年5月10日
    00
  • Python解压 rar、zip、tar文件的方法

    当你需要处理大量的压缩文件时,可以使用Python来解压 rar、zip、tar等文件。下面是Python解压 rar、zip、tar文件的方法: 解压 rar 文件 使用Python的第三方库rarfile来处理.rar文件,以下是示例代码: import rarfile # 创建 rarfile 对象 rf = rarfile.RarFile(‘demo…

    python 2023年5月20日
    00
  • python元类编程的基本使用

    下面我来详细讲解一下“python元类编程的基本使用”的完整攻略。 首先,需要明确一点,元类是用于创建类的类。所以,在使用元类进行编程时,需要定义一个元类,然后使用这个元类动态地创建类。以下是一些基本的使用方法。 定义元类 首先,我们需要定义一个元类。在 Python 中,元类要继承自 type 类或其子类,以便使用元类来创建类。 class MyMetaC…

    python 2023年5月13日
    00
  • Python request设置HTTPS代理代码解析

    以下是关于“Python request设置HTTPS代理代码解析”的完整攻略: Python request设置HTTPS代理代码解析 在Python中,我们可以使用requests库发送HTTP请求。如果需要设置HTTPS代理,我们可以使用proxies参数。以下是Python request设置HTTPS代理代码解析的攻略。 设置单个HTTPS代理 我…

    python 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部