📌  相关文章
📜  Python|使用 XlsxWriter 模块在 Excel 工作表中绘制柱形图(1)

📅  最后修改于: 2023-12-03 15:04:24.173000             🧑  作者: Mango

Python|使用 XlsxWriter 模块在 Excel 工作表中绘制柱形图

在数据可视化中,柱形图是一种常用的图表类型。在 Python 中,使用 XlsxWriter 模块可以很方便地在 Excel 工作表中绘制柱形图,同时支持多种样式和格式选项。

安装 XlsxWriter

如果你还没有安装 XlsxWriter,可以在命令行中使用 pip 进行安装:

pip install XlsxWriter
绘制柱形图

下面是一个简单的示例代码,演示如何在 Excel 中绘制柱形图:

import xlsxwriter

# 创建一个新的 Excel 文件
workbook = xlsxwriter.Workbook('demo.xlsx')

# 创建一个工作表
worksheet = workbook.add_worksheet()

# 准备数据
data = [
    ['Month', 'Sales'],
    ['Jan', 1000],
    ['Feb', 2000],
    ['Mar', 1500],
    ['Apr', 3000],
    ['May', 2500],
    ['Jun', 4000],
]

# 写入数据
for i, row in enumerate(data):
    worksheet.write_row(i, 0, row)

# 创建一个柱形图对象
chart = workbook.add_chart({'type': 'column'})

# 设置图表数据范围和数据系列
chart.add_series({
    'categories': '=Sheet1!$A$2:$A$7',
    'values': '=Sheet1!$B$2:$B$7',
})

# 向工作表中插入图表
worksheet.insert_chart('D2', chart)

# 关闭 Excel 文件
workbook.close()

在这个示例中,我们首先创建了一个包含数据的列表 data,然后使用 xlsxwriter.Workbook() 创建了一个新的 Excel 文件,使用 add_worksheet() 创建了一个工作表。

接着,使用 write_row() 写入数据到工作表中。

然后,使用 add_chart() 创建了一个柱形图对象,使用 add_series() 设置图表数据范围和数据系列,categories 表示分类数据的单元格范围,values 表示值数据的单元格范围。

最后,使用 insert_chart() 将图表插入到工作表中。

设置样式和格式

XlsxWriter 还支持多种样式和格式选项,可以用来美化和自定义图表。

例如,可以使用 chart.set_title() 设置图表的标题,使用 chart.set_legend() 设置图例的位置和样式,使用 chart.set_colors() 自定义颜色,等等。

下面是一个演示如何自定义柱形图样式和格式的示例代码:

import xlsxwriter

# 创建一个新的 Excel 文件
workbook = xlsxwriter.Workbook('demo.xlsx')

# 创建一个工作表
worksheet = workbook.add_worksheet()

# 准备数据
data = [
    ['Month', 'Sales'],
    ['Jan', 1000],
    ['Feb', 2000],
    ['Mar', 1500],
    ['Apr', 3000],
    ['May', 2500],
    ['Jun', 4000],
]

# 写入数据
for i, row in enumerate(data):
    worksheet.write_row(i, 0, row)

# 创建一个柱形图对象
chart = workbook.add_chart({'type': 'column'})

# 设置图表数据范围和数据系列
chart.add_series({
    'categories': '=Sheet1!$A$2:$A$7',
    'values': '=Sheet1!$B$2:$B$7',
    'fill': {'color': 'green'},
})

# 设置图表标题和样式
chart.set_title({'name': 'Monthly Sales Report'})
chart.set_style(11)

# 设置图例位置和样式
chart.set_legend({'position': 'bottom'})

# 自定义颜色
chart.set_colors({'fill': ['blue', 'red']})

# 向工作表中插入图表
worksheet.insert_chart('D2', chart)

# 关闭 Excel 文件
workbook.close()

在这个示例中,我们使用 chart.set_title()chart.set_style() 设置了图表的标题和样式。使用 chart.set_legend() 设置了图例的位置和样式。使用 chart.set_colors() 自定义了颜色,这里将填充的颜色设置为了蓝色和红色。

总结

使用 XlsxWriter 模块,我们可以很方便地在 Excel 工作表中绘制柱形图,同时还可以支持多种样式和格式选项,让我们的图表更加美观和自定义。