【openpyxl】插入图表(折线图)

1.图表

Excel支持的图表类型还挺多的,包括柱状图、折线图、饼图、雷达图等等,2D和3D都有,而且支持很多自定义配置,例如颜色、大小、位置等。因为内容较多,所以我这里只举例折线图,其他图表类型大家可以参考官方文档
https://openpyxl.readthedocs.io/en/stable/charts/introduction.html

2.折线图代码
from openpyxl import Workbook
from openpyxl.chart import LineChart, Reference

wb = Workbook()
ws = wb.active

# 准备数据
rows = [
    ['月份', '桃子', '西瓜', '龙眼'],
    [1, 38, 28, 29],
    [2, 52, 21, 35],
    [3, 39, 20, 69],
    [4, 51, 29, 41],
    [5, 29, 39, 31],
    [6, 30, 41, 39],
]
for row in rows:
    ws.append(row)

# 创建图表
c1 = LineChart()
c1.title = "折线图"  # 标题
c1.style = 13  # 样式
c1.y_axis.title = '销量'  # Y轴
c1.x_axis.title = '月份'  # X轴

# 选择数据范围
data = Reference(ws, min_col=2, min_row=1, max_col=4, max_row=7)
c1.add_data(data, titles_from_data=True)

# 线条样式
s0 = c1.series[0]
s0.marker.symbol = "triangle"  # triangle为三角形标记, 可选circle、dash、diamond、dot、picture、plus、square、star、triangle、x、auto
s0.marker.graphicalProperties.solidFill = "FF0000"  # 填充颜色
s0.marker.graphicalProperties.line.solidFill = "0000FF"  # 边框颜色
# s0.graphicalProperties.line.noFill = True  # 改为True则隐藏线条,但显示标记形状

s1 = c1.series[1]
s1.graphicalProperties.line.solidFill = "00AAAA"
s1.graphicalProperties.line.dashStyle = "sysDot"  # 线条点状样式
s1.graphicalProperties.line.width = 80000  # 线条大小,最大20116800EMUs

s2 = c1.series[2]  # 采用默认设置
s2.smooth = True  # 线条平滑

ws.add_chart(c1, "A8")  # 图表位置

wb.save("line.xlsx")

大概过程是,创建一个图表(Chart)–指定数据范围(Reference)–设置系列(series)样式–添加到工作表中

代码很简单,基本上都做了注释,大家应该可以看得懂

openpyxl是一个用于操作Excel文件的Python库,它提供了丰富的功能来读取、写入和修改Excel文件。然而,openpyxl并不直接支持绘制三维图表,因为它主要专注于Excel文件的数据处理和操作。 要在Excel中创建三维图表,你可以使用openpyxl库来编写数据到Excel文件中,然后使用Excel自身的功能来创建图表。下面是一个简单的示例代码,演示了如何使用openpyxl创建一个包含三维图表Excel文件: ```python from openpyxl import Workbook from openpyxl.chart import BarChart3D # 创建一个新的工作簿 workbook = Workbook() sheet = workbook.active # 写入数据到工作表 data = [ ['Category', 'Value'], ['A', 10], ['B', 15], ['C', 7], ['D', 12] ] for row in data: sheet.append(row) # 创建一个三维柱状图 chart = BarChart3D() chart.title = "Three-dimensional Bar Chart" chart.data = sheet['A1:B5'] chart.x_axis_title = "Category" chart.y_axis_title = "Value" # 将图表插入到工作表中 sheet.add_chart(chart, "D1") # 保存工作簿 workbook.save("3d_chart.xlsx") ``` 在这个示例中,我们首先创建了一个新的工作簿,并获取了默认的工作表。然后,我们将数据写入工作表中,并创建了一个三维柱状图。最后,我们将图表插入到工作表中,并保存工作簿为一个Excel文件。 请注意,这只是一个简单的示例,你可以根据自己的需求进行更复杂的操作和定制。另外,openpyxl还提供了其他类型的图表,如折线图、散点图等,你可以根据需要选择适合的图表类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰冷的希望

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值