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

yizhihongxing

以下是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机器学习入门(四)之Python选择模型

    让我来为你详细讲解“Python机器学习入门(四)之Python选择模型”的完整攻略。这篇攻略主要是讲解如何选择合适的机器学习模型。 1. 数据预处理 在选择模型之前,首先需要对数据进行预处理。包括对数据进行清洗、去重、缺失值处理、特征提取等操作。我们可以使用Pandas库来完成这些操作。 #导入Pandas库 import pandas as pd #加载…

    python 2023年6月3日
    00
  • 深入浅出分析Python装饰器用法

    概述 装饰器是Python语言中经常被使用的一种特殊的语法,它可以在不改变原函数代码的情况下,动态地修改函数的行为。可以说,装饰器是Python函数式编程中非常重要的一部分。 装饰器的基本原理是使用 Python 中的闭包和函数作为第一级对象。Python 的解释器并不关心装饰器的具体实现方式,它只需要能够调用原函数即可。调用函数时,再通过装饰器实现动态功能…

    python 2023年6月6日
    00
  • python机器学习之决策树分类详解

    下面是详细讲解“Python机器学习之决策树分类详解”的完整攻略。 1. 什么是决策树分类 决策树分类是一种基于树形结构的分类方法,它通过数据集进行划分,构建一棵决策树来进行分类。决策树分类具有可解释性、易于理解和实现等优点,因此在实际应用中得到了广泛的应用。 2. 决策树分类原理 决策树分类的原理是通过对数据集进行划分,构建一棵决策树来进行分类。具体实现过…

    python 2023年5月14日
    00
  • 什么是python的必选参数

    Python的必选参数 在Python的函数中,必选参数是指在函数定义时需要定义的参数,调用函数时需要传入的参数,如果没有传入相应的参数,则会抛出TypeError错误。本文将为你详细讲解什么是Python的必选参数。 定义 在函数定义时,可以通过在函数名后面加上括号,传入必选参数,如下所示: def function(a, b, c): pass 上述函数…

    python 2023年6月3日
    00
  • python利用 keyboard 库记录键盘事件

    下面是 python 利用 keyboard 库记录键盘事件的完整攻略。 安装 keyboard 库 首先,需要安装 keyboard 库,可以使用 pip 命令进行安装: pip install keyboard 监听键盘事件 使用 keyboard 库,可以监听各种键盘事件,如按键、释放、组合键等。以下是一个示例程序: import keyboard d…

    python 2023年6月5日
    00
  • Python正则表达式中flags参数的实例详解

    Python正则表达式中flags参数的实例详解 正则表达式是一种强大的文本处理工具,可以用于各种文本处理任务,如清洗、文本分析、信息提取等。在Python中,我们使用re模块来操作正则表达式。re模块提供了许多函数和参数,其中flags参数是一个非常有用参数,可以用于控制正则表达式的匹配方式。本攻略将详细讲解Python正则表达式中flags参数的用法和示…

    python 2023年5月14日
    00
  • Python “手绘风格”数据可视化方法实例汇总

    Python “手绘风格”数据可视化方法实例汇总 1. 简介 本文将介绍如何使用 Python 生成“手绘风格”的数据可视化图表。手绘风格的图表一般具有与众不同的美感和艺术感,能够更好地吸引读者的注意力和解释数据。本文将分别从以下两个方面进行阐述。 2. 手绘风格的定义 手绘风格是指利用绘画技巧和精细的处理来模拟手工制作的风格,将绘制出的图表呈现出类似手工制…

    python 2023年6月6日
    00
  • Python利用jmespath模块进行json数据处理

    我来讲解利用jmespath模块进行json数据处理的完整攻略。 什么是jmespath模块 jmespath是一种用于查询和转换JSON数据的语言,它是日本的 James Spath 在2012年创建的。JMesPath模块提供了一种简单的读取 JSON 数据的方式,它允许您使用 Python 程序查询 JSON 对象并提取所需的数据。JMesPath支持…

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