Python中如何用openpyxl进行图表处理

python

在excel中找到许多行列等待处理的数据,替代传统低效率的人工操作,并且进行精简处理,这正是openpyx的受到众多好评的原因。想要了解如何用openpyxl进行图表处理 ,实例讲解如下:


openpyxl通过charts进行图表处理,这里在就强大图表处理功能进行下补充。各种图表都有如下:



以BarChart为例, 在BarChart中,图表类型可以通过众多参数设置。

  

值被绘制为水平条或垂直列:通过将类型设置为COL或BAR,即可在垂直和水平条形图之间切换;当使用堆叠图时,重叠需要设置为100。可以通过chartObj.y_axis.title='Test_y', chartObj.x_axis.title='Test_x' 设置坐标轴的属性;通过chartObj.type='col'   (col为纵向,bar为横向),chartObj.title='Bar chart' 等来设置图表的属性等。

 

以下代码生成4种2D图表。


from openpyxl import Workbook

from openpyxl.chart import BarChart, Series, Reference

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, 10, 40),

   (7, 50, 30),

]

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, "G10")

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, "G27")

wb.save("bar.xlsx")


代码验证通过,效果如下:



以下代码生成3D图表。


from openpyxl import Workbook

from openpyxl.chart import (

   Reference,

   Series,

   BarChart3D,

)

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, min_col=2, min_row=1, max_col=3, max_row=4)

titles = Reference(ws, min_col=1, min_row=2, 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("bar3d.xlsx")


代码验证通过,效果如下:


openpyxl实现了用Python读取和修改Excel电子表格件,并生成需要的新表格,需要的小伙伴可以尝试操作啦~更多python实用知识,点击进入云海天Python教程网。

以上是 Python中如何用openpyxl进行图表处理 的全部内容, 来源链接: utcz.com/z/529177.html

回到顶部