用Python绘制折线图(下)
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.title
、LineChart对象.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.title、chart.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.title
、chart.y_axis.title
、chart.style
4)Reference对象的创建: Reference(worksheet, min_row, max_row, min_col, max_col)
5)工作表对象的方法: ws.add_chart(图表对象,anchor)
用Python绘制折线图(下)相关推荐
- python简单代码画曲线图教程-Python绘制折线图和散点图的详细方法介绍(代码示例)...
本篇文章给大家带来的内容是关于Python绘制折线图和散点图的详细方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.绘制折线图和散点图要用到matplotlib ...
- python画折线图代码-Python绘制折线图和散点图的详细方法介绍(代码示例)
本篇文章给大家带来的内容是关于Python绘制折线图和散点图的详细方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.绘制折线图和散点图要用到matplotlib ...
- 用Python绘制折线图(上)
各个事业部需要在工作表中生成利润走势图,来分析利润走向. 但是一共有52个部门,也就是需要给52个Excel表格绘图,同样的绘图操作要重复52遍,如果一个个操作实在浪费时间. 还有绘制什么样式的图也需 ...
- python 绘制折线图-怎样用python绘制折线图
今天教大家用python绘制一些线性图案,需要的朋友可以借鉴参考一下. 画最简单的直线图 代码如下:import numpy as np import matplotlib.pyplot as plt ...
- python绘制折线图先对数据进行处理_python气象数据分析并绘制折线图-女性时尚流行美容健康娱乐mv-ida网...
女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页 > 高级搜索 excel 2010巧妙处理 折 ...
- 【Python】用Python绘制折线图(插值法平滑曲线)
目录 利用绘制图表:matplotlib官网 1. 小试牛刀--柱状图 1.1 matplotlib库默认英文字体 2. 折线图绘制 2.1 读取exal方法 2.1.1 数据处理常用库 ...
- python绘制折线图保存_python如何画折线图
python画折线图利用的是matplotlib.pyplot.plot的工具来绘制折线图,这里先给出一个段代码和结果图:# -*- coding: UTF-8 -*- import numpy as ...
- python绘制折线图保存_Python利用matplotlib绘制折线图的新手教程
前言 matplotlib是Python中的一个第三方库.主要用于开发2D图表,以渐进式.交互式的方式实现数据可视化,可以更直观的呈现数据,使数据更具说服力. 一.安装matplotlib pip i ...
- Python绘制折线图、散点图
Python绘图需要下载安装matplotlib模块,它是一个数学绘图库,我们将使用它来制作简单的图表,如折线图和散点图.关于matplotlib模块的下载安装预配置将在后面具体介绍. (一)绘制折线 ...
- python 绘制折线图 显示纵坐标值_python怎样用matplotlib画折线图对比图
在论文写作中经常会出现多个算法效果比较的折线对比图,本文就介绍一下,怎样通过python中的matplotlib库来画出折线对比图. 工具/原料 python matploblib 方法/步骤 1 M ...
最新文章
- oracle中lock的解释
- intellij idea 配置远程访问本地的tomcat项目
- hadoop 配置项的调优
- [Erlang-0006][OTP] 高效指南 -- 列表解析
- redis 备份导出rdb_redis简单安装学习
- 记录JS报错Cannot set property ‘onclick/xxx‘ of null
- linux查看通信延迟,低优先级进程延迟实时进程中的串行通信(Linux)
- 02 - 替换SetInput方法 VTK 6.0 迁移 (2013-06-30 16:22)
- (王道408考研操作系统)第二章进程管理-第二节4:调度算法详解2(RR、HPF和MFQ)
- php语言 电商网站,如何做多国家,多语言电商网站的设计
- Adobe 字体显示不清楚----解决方案
- 商旅业务知识-航信(ETERM)系统
- 凤姐的原创诗歌 思想的悲哀
- 蓄热式加热炉燃烧技术
- SpringBoot集成onlyoffice实现word文档编辑保存 [ 转载 ]
- java file mac ox_MAC OX 配置JDK环境变量
- js关闭当前网页的代码
- 开发中那些难题以及那些哭笑不得的解决过程
- C++使用libCurl访问12306网站实现登录查询车次信息
- 子桓说:看人看本质,职场识人辨人之术