python中Excel图表的绘制

728次阅读
没有评论

python中Excel图表的绘制

1、饼图将数据画成圆形切片,每个切片代表整个百分比。

切片按顺时针方向画,圆顶0°。

# 绘制饼图
import openpyxl
from openpyxl.chart import PieChart, Reference, BarChart, BubbleChart, ScatterChart  # Reference:图标所用信息
from openpyxl.chart import Series
 
# 准备数据
rows = [
    ['Pie', 'Sold'],
    ['Apple', 50],
    ['Cherry', 30],
    ['Pumpkin', 10],
    ['Chocolate', 40]
]
 
# 将数据写入excel
# 创建工作簿
wb = openpyxl.Workbook()
ws = wb.active
ws.title = 'Pie Charts'
 
for row in rows:
    ws.append(row)
 
# 绘制饼图
pie_chart = PieChart()
# 设置标题
pie_chart.title = 'Pie sold by category'
# 进行分类
category = Reference(ws, min_col=1, min_row=2, max_row=5)
data = Reference(ws, min_col=2, min_row=2, max_row=5)  # 数据所在第2列
 
# 需要先添加数据再设置种类介绍
# 添加数据
pie_chart.add_data(data)
# 设置所分类别
pie_chart.set_categories(category)
 
# 在excel添加饼图
ws.add_chart(pie_chart, 'D1')  # 在D1位置绘制饼图
# 保存
wb.save('char_excel_text.xlsx')

2、在条形图中,值被绘制成水平条或垂直列。可以通过type属性设置。

import openpyxl
from openpyxl.chart import PieChart, Reference, BarChart, BubbleChart, ScatterChart  # Reference:图标所用信息
from openpyxl.chart import Series
 
# 绘制柱状图
# 创建工作表
ws = wb.create_sheet('Bar Chart')
 
# 准备数据
rows = [
    ('Number', 'Batch1', 'Batch2'),
    (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)
 
# 绘制柱状图
bar_chart = BarChart()
bar_chart.type = 'col'  # col垂直、水平柱状图 bar
bar_chart.title = 'Bar Chart'
bar_chart.style = 10  # 设置颜色,10的对比度最强,红色与蓝色
# 设置横轴纵轴标题
bar_chart.x_axis.title = 'Sample length(mm)'
bar_chart.y_axis.title = 'Test number'
 
# 设置分类
category = Reference(ws, min_col=1, min_row=2, max_row=7)
# 获取数据
data = Reference(ws, min_col=2, max_col=3, min_row=1, max_row=7)
 
# 柱状图对象添加数据
bar_chart.add_data(data, titles_from_data=True)  # titles_from_data=True:根据来源设置数据标题
# 设置分类
bar_chart.set_categories(category)
# 工作页绘制柱状图,并指定位置
ws.add_chart(bar_chart, 'E1')
 
# 保存
wb.save('char_excel_text.xlsx')
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:wuyou2022-03-15发表,共计1815字。
新手QQ群:570568346,欢迎进群讨论 Python51学习