社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python自动化操作Excel绘制条形图!

CDA数据分析师 • 3 年前 • 267 次点击  


导读:没有什么问题是Python解决不了的。


作者:黄伟呢
来源:数据分析与统计学之美(ID:huang_superme)



有位朋友在群里面咨询了一个问题。大致意思如图所示:



有人提议用vba,但是不得不说,没有学过vba的朋友,会觉得vba用起来很困难。那还不容易,直接上Python,没有什么问题是Python解决不了的。


哈哈,说的有点夸张了。但是上述这个问题,用Python解决是绝对没问题。



01 解题思路


我们先来看看这个数据,长啥样?



一个Excel有3个sheet表,每个sheet表中有一个数据。我们想利用这3个数据,绘制一条折线图。


我的思路大致是这样,整个步骤如下:


  1. 新建一个新的Excel表格;

  2. 读取该测试数据,并读取每个sheet表中的值;

  3. 将上述读取到的数据,写入新建的Excel表格中;

  4. 进行图形的绘制;



02 完整代码


有了上述思路,我们直接上代码,代码中给大家进行了详细的注释。


# 导入相关库
from openpyxl import load_workbook,Workbook
from openpyxl.chart import LineChart, Reference 

# 新建Excel表格
wb = Workbook()
ws = wb.active
ws.cell(row=1,column=1).value = "销售额"

# 读取测试表格中的数据,并写入到新建的Excel表格中
wb1 = load_workbook("测试.xlsx")
for index,value in enumerate(wb1.sheetnames):
    ws1 = wb1[value]
    ws.cell(row=index+2,column=1).value = ws1.cell(row=1,column=1).value

# 进行图形的绘制
chart = LineChart()

data = Reference(ws,min_row=1,max_row=4,min_col=1, max_col=1
chart.add_data(data,titles_from_data=True)

chart.title = "不同月份的销售额" 

chart.y_axis.scaling.min = 9
chart.y_axis.scaling.max = 14

ws.add_chart(chart,"D1")
wb.save("最新.xlsx")


最终效果如图所示:





 

点这里👇关注我,记得标星哦~



推荐阅读


 

CDA课程咨询

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/137767
 
267 次点击