Python openpyxl Excel绘制柱形图

Python openpyxl Excel绘制柱形图,第1张

概述这是一份 "openpyxl" 的使用指南。 大体内容翻译自官网 https://openpyxl.readthedocs.io/en/stable/charts/bar.html

这是一份openpyxl的使用指南。

大体内容翻译自官网 https://openpyxl.readthedocs.io/en/stable/charts/bar.html#vertical-horizontal-and-stacked-bar-charts

本文在官网基础上会有一些改动。代码请参考 https://github.com/RustFisher/python-playground

本文链接 https://rustfisher.com/2019/11/14/Python/Python-openpyxl_charts_Bar_and_Column/

柱形图

数据会被绘制成垂直,水平或者是层叠效果的柱形图。

注意:

接下来的设置会影响到不同类型的图表。设置类别可以控制柱形图是垂直或是水平。使用层叠图形时,需要设置overlap成100。如果柱形是水平的,x和y坐标会对调过来。2D图表

示例代码如下,根据给定的数据绘制了4张图表。

from openpyxl import Workbookfrom openpyxl.chart import barChart,SerIEs,Referencedef bar_chart_demo():    wb = Workbook(write_only=True)    ws = wb.create_sheet()    rows = [        ('Number','Batch 1','Batch 2'),(2,10,30),(3,40,60),(4,50,70),(5,20,10),(6,40),(7,]    for row in rows:        ws.append(row)    chart1 = barChart()    chart1.type = "col"    chart1.style = 10    chart1.Title = "bar Chart"    chart1.y_axis.Title = 'Test number'    chart1.x_axis.Title = 'Sample length (mm)'    data = Reference(ws,min_col=2,min_row=1,max_row=7,max_col=3)    cats = Reference(ws,min_col=1,min_row=2,max_row=7)    chart1.add_data(data,Titles_from_data=True)    chart1.set_categorIEs(cats)    chart1.shape = 4    ws.add_chart(chart1,"A10")    from copy import deepcopy    chart2 = deepcopy(chart1)    chart2.style = 11    chart2.type = "bar"    chart2.Title = "Horizontal bar Chart"    ws.add_chart(chart2,"I10")    chart3 = deepcopy(chart1)    chart3.type = "col"    chart3.style = 12    chart3.grouPing = "stacked"    chart3.overlap = 100    chart3.Title = 'Stacked Chart'    ws.add_chart(chart3,"A27")    chart4 = deepcopy(chart1)    chart4.type = "bar"    chart4.style = 13    chart4.grouPing = "percentStacked"    chart4.overlap = 100    chart4.Title = 'Percent Stacked Chart'    ws.add_chart(chart4,"I27")    wb.save("out/bar.xlsx")if __name__ == '__main__':    bar_chart_demo()

译者注:这里调整了图表在excel中的位置,原文是在G列,即G10G27,这里改为了I列。代码格式也有微调。

我们需要生成图表的时候,Excel会要我们先选定数据范围(来源)。在代码中用Reference来指定数据来源范围。

3D图表

绘制3D图表,使用barChart3D

def bar_3d():    wb = Workbook()    ws = wb.active    rows = [        (None,2013,2014),("Apples",5,4),("Oranges",6,2),("Pears",8,3)    ]    for row in rows:        ws.append(row)    data = Reference(ws,max_col=3,max_row=4)    Titles = Reference(ws,max_row=4)    chart = barChart3D()    chart.Title = "3D bar Chart"    chart.add_data(data=data,Titles_from_data=True)    chart.set_categorIEs(Titles)    ws.add_chart(chart,"E5")    wb.save("out/bar3d.xlsx")

创建好的图表用WPS打开发现是2D的。用Office Excel打开是3D的。

总结

以上是内存溢出为你收集整理的Python openpyxl Excel绘制柱形图全部内容,希望文章能够帮你解决Python openpyxl Excel绘制柱形图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1158049.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存