# 导入包
from openpyxl import load_workbook
# Reference#获取饼状图中的数据
# PieChart 饼状图
from openpyxl.chart import PieChart,Reference
# 加载excel
wb = load_workbook('./data/卫浴销售数据汇总.xlsx')
ws = wb['一季度汇总表']
# 获取数据,第1列是分类,第2列是数据
labels = Reference(ws,min_col=1,max_col=1,min_row=2,max_row=10)
data = Reference(ws,min_col=3,max_col=3,min_row=2,max_row=10)
# 生成饼状图,设置相关属性
pie = PieChart()
pie.add_data(data)
pie.set_categories(labels)
pie.title = '一季度马桶销量饼状图'
# 设置图片位置
ws.add_chart(pie,'E1')
# 保存excel
wb.save('一季度马桶销量饼状图.xlsx')
说明:本文章为大熊自动化办公课程的学习笔记
from openpyxl import Workbook
from openpyxl.chart import (
PieChart,
ProjectedPieChart,
Reference
)
from openpyxl.chart.series import DataPoint
data = [
['Pie', 'Sold'],
['Apple', 50],
['Cherry', 30],
['Pumpkin', 10],
['Chocolate', 40],
]
wb = Workbook()
ws = wb.active
for row in data:
ws.append(row)
pie = PieChart()
labels = Reference(ws, min_col=1, min_row=2, max_row=5)
data = Reference(ws, min_col=2, min_row=1, max_row=5)
pie.add_data(data, titles_from_data=True)
pie.set_categories(labels)
pie.title = "Pies sold by category"
# Cut the first slice out of the pie
slice = DataPoint(idx=0, explosion=20)
pie.series[0].data_points = [slice]
ws.add_chart(pie, "D1")
ws = wb.create_sheet(title="Projection")
data = [
['Page', 'Views'],
['Search', 95],
['Products', 4],
['Offers', 0.5],
['Sales', 0.5],
]
for row in data:
ws.append(row)
projected_pie = ProjectedPieChart()
projected_pie.type = "pie"
projected_pie.splitType = "val" # split by value
labels = Reference(ws, min_col=1, min_row=2, max_row=5)
data = Reference(ws, min_col=2, min_row=1, max_row=5)
projected_pie.add_data(data, titles_from_data=True)
projected_pie.set_categories(labels)
ws.add_chart(projected_pie, "A10")
from copy import deepcopy
projected_bar = deepcopy(projected_pie)
projected_bar.type = "bar"
projected_bar.splitType = 'pos' # split by position
ws.add_chart(projected_bar, "A27")
wb.save("pie.xlsx")
说明:本文章为大熊自动化办公课程的学习笔记