3. 折线图信息及样式的优化

完成上面的折线图绘制后,目前工作表的折线图应该是长这样的:

这折线图存在一些问题:信息模糊;不清楚X轴、Y轴描述了什么数据;折线图的样式不是很美观。

所以,还需要进行折线图信息及样式的优化,具体可分为三个步骤:修改类别轴的标签添加X轴、Y轴的标题修改折线图的样式

对比一下折线图优化前后的差别,我们可以看到有几个变化:折线图增加了X、Y轴的标题、修改了类别轴的标签,使得图的信息更清晰。另外,折线图的样式也进行了调整。

那么,折线图信息及样式的优化功能块要如何实现呢?前面已经提过,有以下几个步骤。

设置类别轴的标签

LineChart对象.set_categories()

调用方法LineChart对象.set_categories(), 可以引用表格中的数据来设置类别轴的标签。(set中文翻译:设置;categories中文翻译:类别)

该方法的使用很简单:LineChart对象.set_categories(Reference对象), Reference对象指明所要引用的数据。

我们具体看看LineChart对象.set_categories()的使用。

# 引用"表头部分"单元格范围
cats = Reference(worksheet=ws, min_row=2, max_row=2, min_col=2, max_col=5)
# 设置类别轴的标签
chart.set_categories(cats)

在上述代码块中,使用表格中第 2 行中的部分数据来命名类别轴的标签。

from openpyxl import load_workbook
from openpyxl.chart import LineChart, Reference# 读取工作簿
wb = load_workbook('./事业01部_3.xlsx')
# 读取工作簿中的活跃工作表
ws = wb.active
# 实例化 LineChart() 类,得到 LineChart 对象
chart = LineChart()
# 引用工作表的部分数据
data = Reference(worksheet=ws, min_row=3, max_row=9, min_col=1, max_col=4)
# 添加被引用的数据到 LineChart 对象
chart.add_data(data, from_rows=True, titles_from_data=True)
# 添加 LineChart 对象到工作表中,指定折线图的位置
ws.add_chart(chart, "C12")# 引用"表头部分"单元格范围
cats = Reference(worksheet=ws, min_row=2, max_row=2, min_col=2, max_col=4)
# 设置类别轴的标签
chart.set_categories(cats)
# 设置类别轴的标签# 保存文件
wb.save('./事业01部_3.xlsx')

在设置类别轴的标签时,记得实例化Reference类,引用数据。

添加X 、Y轴的标题

LineChart对象.x_axis.title、LineChart对象.y_axis.title

设置属性LineChart对象.x_axis.titleLineChart对象.y_axis.title的值,可以为折线图添加X轴、Y轴的标题。(x_axis、y_axis中文翻译:x轴、y轴;title中文翻译:标题)

例如:下段代码可以为X轴、Y轴分别添加标题: “季度”、“利润”。

# 设置 x 轴的标题
chart.x_axis.title = "季度"
# 设置 y 轴的标题
chart.y_axis.title = "利润"
from openpyxl import load_workbook
from openpyxl.chart import LineChart, Reference# 读取工作簿
wb = load_workbook('./事业01部_3.xlsx')
# 读取工作簿中的活跃工作表
ws = wb.active# 实例化 LineChart() 类,得到 LineChart 对象
chart = LineChart()
# 引用工作表的部分数据
data = Reference(worksheet=ws, min_row=3, max_row=9, min_col=1, max_col=4)
# 添加被引用的数据到 LineChart 对象
chart.add_data(data, from_rows=True, titles_from_data=True)
# 添加 LineChart 对象到工作表中,指定折线图的位置
ws.add_chart(chart, "C12")# 引用"表头部分"单元格范围
cats = Reference(worksheet=ws, min_row=2, max_row=2, min_col=2, max_col=5)
# 设置类别轴的标签
chart.set_categories(cats)
# 设置 x 轴的标题为"月份"
chart.x_axis.title='月份'
# 设置 y 轴的标题为"利润"
chart.y_axis.title='利润'
# 保存文件
wb.save('./事业01部_3.xlsx')

是不是很简单,只需要给 chart.x_axis.titlechart.y_axis.title 赋值。

修改图的样式

LineChart对象.style

设置LineChart对象.style的值,可以调整折线图的样式(折线图背景颜色、折线图线条颜色)。

LineChart对象.style的值可以设置为1到48的整数(包括1和48)。

下面我给出几个样式的示例和其对应的值。

到此,我们知道了如何去实现折线图信息和样式优化功能块。接下来,运用所学的知识复现折线图信息及样式的优化功能块。

功能块练习

在实操之前,我们先回忆一下折线图信息及样式的优化功能块的步骤和知识。

from openpyxl import load_workbook
from openpyxl.chart import LineChart, Reference# 读取工作簿
wb = load_workbook('./事业01部.xlsx')
# 读取工作簿中的活跃工作表
ws = wb.active
# 实例化 LineChart() 类,得到 LineChart 对象
chart = LineChart()
# 引用工作表的部分数据
data = Reference(worksheet=ws, min_row=3, max_row=9, min_col=1, max_col=5)
# 添加被引用的数据到 LineChart 对象
chart.add_data(data, from_rows=True, titles_from_data=True)
# 添加 LineChart 对象到工作表中,指定生成折线图的位置
ws.add_chart(chart, "C12")# 引用"表头部分"单元格范围:第2行的第2列至第5列
cats=Reference(worksheet=ws,min_row=2,max_row=2,min_col=2,max_col=5)
# 设置类别轴的标签
chart.set_categories(cats)
# 设置 x 轴的标题为"季度"
chart.x_axis.title="季度"
# 设置 y 轴的标题为"利润"
chart.y_axis.title='利润'
# 给chart.style设置值(1到48的整数),推荐使用48
chart.style=42
# 保存文件
wb.save('./事业01部.xlsx')

4. 程序实现与总结

功能块合并

其中“功能块1:循环打开Excel文件”和“功能块4:保存Excel文件”的代码已经学习过了

功能块1:循环打开Excel文件

import os
from openpyxl import load_workbook# 设置目标文件夹路径
path = './各部门利润表汇总/'
# 获取文件夹下的所有文件名
file_list = os.listdir(path)
# 遍历文件名列表,取得每一个文件名
for file_name in file_list:# 拼接文件路径file_path = path + file_nameprint('正在处理:' + file_name)# 读取工作簿wb = load_workbook(file_path)# 定位到工作簿中的活跃工作表ws = wb.active

折线图绘制、优化的代码如下:

折线图绘制、优化的代码如下:# 实例化 LineChart() 类,得到 LineChart 对象
chart = LineChart()
# 引用工作表的部分数据
data = Reference(worksheet=ws, min_row=3, max_row=9, min_col=1, max_col=5)
# 添加被引用的数据到 LineChart 对象
chart.add_data(data, from_rows=True, titles_from_data=True)
# 添加 LineChart 对象到工作表中,指定生成折线图的位置
ws.add_chart(chart, "C12")# 引用工作表的表头数据
cats = Reference(worksheet=ws, min_row=2, max_row=2, min_col=2, max_col=5)
# 设置类别轴的标签
chart.set_categories(cats)
# 设置 x 轴的标题
chart.x_axis.title = "季度"
# 设置 y 轴的标题
chart.y_axis.title = "利润"
# 设置折线图的颜色
chart.style = 48

接下来,将上述两段代码合并,依次为文件夹 “./各部门利润表汇总/” 中的工作簿绘制折线图。

可以把折线图绘制、优化的代码看成一个整体,放进for循环内。这样,每次循环会打开一个工作表,并绘制和优化折线图。

代码合并后,变成这样了:

接下来,我们开始优化和修改代码。

1)检查代码是否导入所需的库、模块、类、函数。

2)检查变量的命名是否一致。

最后,别忘了 功能块4:保存Excel文件

最后,代码为:

import os
from openpyxl import load_workbook
from openpyxl.chart import LineChart, Reference# 设置目标文件夹路径
path = './各部门利润表汇总/'
# 获取文件夹下的所有文件名
file_list = os.listdir(path)
# 遍历文件名列表,取得每一个文件名
for file_name in file_list:# 拼接文件路径file_path = path + file_nameprint('正在处理:' + file_name)# 读取工作簿wb = load_workbook(file_path)# 定位到工作簿中的活跃工作表ws = wb.active# 实例化 LineChart() 类,得到 LineChart 对象chart = LineChart()# 引用工作表的部分数据data = Reference(worksheet=ws, min_row=3, max_row=9, min_col=1, max_col=5)# 添加被引用的数据到 LineChart 对象chart.add_data(data, from_rows=True, titles_from_data=True)# 添加 LineChart 对象到工作表中,指定生成折线图的位置ws.add_chart(chart, "C12")# 引用工作表的表头数据cats = Reference(worksheet=ws, min_row=2, max_row=2, min_col=2, max_col=5)# 设置类别轴的标签chart.set_categories(cats)# 设置 x 轴的标题chart.x_axis.title = "季度"# 设置 y 轴的标题chart.y_axis.title = "利润"# 设置折线图的颜色chart.style = 48# 保存工作簿wb.save(file_path)

知识归纳与总结

最后,梳理一下完成这个项目的过程吧!

图表的绘制,涉及3个功能块:循环打开Excel文件折线图绘制折线图信息及样式的优化保存Excel文件

为了实现折线图绘制折线图信息及样式的优化功能块,主要学习了:

1)LineChart对象的创建: LineChart()

2)LineChart对象的方法: LineChart.add_data(Reference对象, from_rows, titles_from_data)LineChart.set_categories(Reference对象)

3)LineChart对象的属性: LineChart.x_axis.titlechart.y_axis.titlechart.style

4)Reference对象的创建: Reference(worksheet, min_row, max_row, min_col, max_col)

5)工作表对象的方法: ws.add_chart(图表对象,anchor)

用Python绘制折线图(下)相关推荐

  1. python简单代码画曲线图教程-Python绘制折线图和散点图的详细方法介绍(代码示例)...

    本篇文章给大家带来的内容是关于Python绘制折线图和散点图的详细方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.绘制折线图和散点图要用到matplotlib ...

  2. python画折线图代码-Python绘制折线图和散点图的详细方法介绍(代码示例)

    本篇文章给大家带来的内容是关于Python绘制折线图和散点图的详细方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.绘制折线图和散点图要用到matplotlib ...

  3. 用Python绘制折线图(上)

    各个事业部需要在工作表中生成利润走势图,来分析利润走向. 但是一共有52个部门,也就是需要给52个Excel表格绘图,同样的绘图操作要重复52遍,如果一个个操作实在浪费时间. 还有绘制什么样式的图也需 ...

  4. python 绘制折线图-怎样用python绘制折线图

    今天教大家用python绘制一些线性图案,需要的朋友可以借鉴参考一下. 画最简单的直线图 代码如下:import numpy as np import matplotlib.pyplot as plt ...

  5. python绘制折线图先对数据进行处理_python气象数据分析并绘制折线图-女性时尚流行美容健康娱乐mv-ida网...

    女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页 > 高级搜索 excel 2010巧妙处理 折 ...

  6. 【Python】用Python绘制折线图(插值法平滑曲线)

    目录 利用绘制图表:​​​​​​matplotlib官网 1. 小试牛刀--柱状图 1.1 matplotlib库默认英文字体 2. 折线图绘制 2.1 读取exal方法 2.1.1  数据处理常用库 ...

  7. python绘制折线图保存_python如何画折线图

    python画折线图利用的是matplotlib.pyplot.plot的工具来绘制折线图,这里先给出一个段代码和结果图:# -*- coding: UTF-8 -*- import numpy as ...

  8. python绘制折线图保存_Python利用matplotlib绘制折线图的新手教程

    前言 matplotlib是Python中的一个第三方库.主要用于开发2D图表,以渐进式.交互式的方式实现数据可视化,可以更直观的呈现数据,使数据更具说服力. 一.安装matplotlib pip i ...

  9. Python绘制折线图、散点图

    Python绘图需要下载安装matplotlib模块,它是一个数学绘图库,我们将使用它来制作简单的图表,如折线图和散点图.关于matplotlib模块的下载安装预配置将在后面具体介绍. (一)绘制折线 ...

  10. python 绘制折线图 显示纵坐标值_python怎样用matplotlib画折线图对比图

    在论文写作中经常会出现多个算法效果比较的折线对比图,本文就介绍一下,怎样通过python中的matplotlib库来画出折线对比图. 工具/原料 python matploblib 方法/步骤 1 M ...

最新文章

  1. oracle中lock的解释
  2. intellij idea 配置远程访问本地的tomcat项目
  3. hadoop 配置项的调优
  4. [Erlang-0006][OTP] 高效指南 -- 列表解析
  5. redis 备份导出rdb_redis简单安装学习
  6. 记录JS报错Cannot set property ‘onclick/xxx‘ of null
  7. linux查看通信延迟,低优先级进程延迟实时进程中的串行通信(Linux)
  8. 02 - 替换SetInput方法 VTK 6.0 迁移 (2013-06-30 16:22)
  9. (王道408考研操作系统)第二章进程管理-第二节4:调度算法详解2(RR、HPF和MFQ)
  10. php语言 电商网站,如何做多国家,多语言电商网站的设计
  11. Adobe 字体显示不清楚----解决方案
  12. 商旅业务知识-航信(ETERM)系统
  13. 凤姐的原创诗歌 思想的悲哀
  14. 蓄热式加热炉燃烧技术
  15. SpringBoot集成onlyoffice实现word文档编辑保存 [ 转载 ]
  16. java file mac ox_MAC OX 配置JDK环境变量
  17. js关闭当前网页的代码
  18. 开发中那些难题以及那些哭笑不得的解决过程
  19. C++使用libCurl访问12306网站实现登录查询车次信息
  20. 子桓说:看人看本质,职场识人辨人之术

热门文章

  1. ios设备管理 iMazing官方免费激活电脑版下载v2.11.6.0
  2. java 无法显示打印页面_使用打印机打印网页时出现的脚本错误的办法
  3. 数据库:园林软件(病虫害题库)
  4. 4g 访问App 慢的原因
  5. 安装jdk在linux(2)
  6. 1.9万亿美元市场,自动驾驶开发者向何处去?
  7. 搭建基于 Docker 的 CI/CD
  8. .NET6发布到linux
  9. 计算机专业分数线最新,计算机专业近三年录取分数线分析
  10. 使用lua脚本开发wow插件(魔兽世界插件开发·二)