python xlsxwriter库生成图表的应用示例

  • Post category:Python

下面我将为您介绍使用Python中的xlsxwriter库生成图表的完整实例教程。

1. 安装xlsxwriter库

使用pip命令进行安装

pip install xlsxwriter

2. 基本用法

2.1 创建Excel表格

首先,我们需要创建一个Excel表格,代码如下所示:

import xlsxwriter

workbook = xlsxwriter.Workbook('chart.xlsx')
worksheet = workbook.add_worksheet('示例')

# 写入数据
worksheet.write('A1', '2017年')
worksheet.write('A2', '2018年')
worksheet.write('A3', '2019年')
worksheet.write('B1', 5000)
worksheet.write('B2', 8000)
worksheet.write('B3', 10000)

workbook.close()

在这段代码中,我们首先创建一个Workbook对象,然后使用add_worksheet()方法创建一个名为“示例”的工作表。接下来使用write()方法向单元格中写入数据。

2.2 创建图表

接着,我们需要使用Chart对象来创建图表。Excel支持多种类型的图表,例如柱状图、折线图、饼状图等。

下面以柱状图为例,创建一个简单的柱状图:

import xlsxwriter

workbook = xlsxwriter.Workbook('chart.xlsx')
worksheet = workbook.add_worksheet('示例')

# 写入数据
worksheet.write('A1', '2017年')
worksheet.write('A2', '2018年')
worksheet.write('A3', '2019年')
worksheet.write('B1', 5000)
worksheet.write('B2', 8000)
worksheet.write('B3', 10000)

# 创建柱状图
chart = workbook.add_chart({'type': 'column'})

# 设置图表数据
chart.add_series({
    'name': '示例',
    'categories': '=示例!$A$1:$A$3',
    'values': '=示例!$B$1:$B$3',
})

# 将图表插入到工作表
worksheet.insert_chart('C1', chart)

workbook.close()

可见,我们首先使用add_chart()方法创建一个类型为“column”的柱状图。接着,使用add_series()方法设置图表的数据,并使用insert_chart()方法将图表插入到工作表中。

2.3 设置图表样式

除了设置图表的类型和数据之外,我们还可以设置图表的样式,例如标题、坐标轴、图例等。

import xlsxwriter

workbook = xlsxwriter.Workbook('chart.xlsx')
worksheet = workbook.add_worksheet('示例')

# 写入数据
worksheet.write('A1', '2017年')
worksheet.write('A2', '2018年')
worksheet.write('A3', '2019年')
worksheet.write('B1', 5000)
worksheet.write('B2', 8000)
worksheet.write('B3', 10000)

# 创建柱状图
chart = workbook.add_chart({'type': 'column'})

# 设置图表数据
chart.add_series({
    'name': '示例',
    'categories': '=示例!$A$1:$A$3',
    'values': '=示例!$B$1:$B$3',
})

# 设置图表标题
chart.set_title({'name': '销售统计'})

# 设置横坐标轴名称
chart.set_x_axis({'name': '年份'})

# 设置纵坐标轴名称
chart.set_y_axis({'name': '销售额'})

# 将图表插入到工作表
worksheet.insert_chart('C1', chart)

workbook.close()

在这段代码中,我们使用Chart对象的set_title()、set_x_axis()、set_y_axis()方法设置图表的标题、横坐标轴名称、纵坐标轴名称。

3. 应用示例

下面,我们将通过两个实际示例来展示xlsxwriter库生成图表的应用。

3.1 生成折线图

以下示例中,我们将使用Python中的随机数生成器生成 20 个数据点,并将这些数据点绘制成一条折线图。

import xlsxwriter
import random

# 创建Excel表格
workbook = xlsxwriter.Workbook('line_chart.xlsx')
worksheet = workbook.add_worksheet()

# 设置表格格式
bold = workbook.add_format({'bold': True})

# 写入数据
worksheet.write('A1', '序号', bold)
worksheet.write('B1', '数据', bold)
for i in range(20):
    worksheet.write(i+1, 0, i+1)
    worksheet.write(i+1, 1, random.randint(0, 100))

# 创建折线图
chart = workbook.add_chart({'type': 'line'})

# 设置图表数据
chart.add_series({
    'name': '数据',
    'categories': '=Sheet1!$A$2:$A$21',
    'values': '=Sheet1!$B$2:$B$21',
})

# 设置图表标题
chart.set_title({'name': '折线图示例'})

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

# 关闭Excel表格
workbook.close()

在该示例中,我们首先创建一个Workbook对象,并使用add_worksheet()方法创建一个名为“Sheet1”的工作表。接着,我们使用write()方法向工作表中写入数据。然后使用add_chart()方法创建一个类型为“line”的折线图,使用add_series()方法设置图表数据,使用set_title()方法设置图表标题,最后使用insert_chart()方法将图表插入到工作表中。

3.2 生成饼状图

以下示例中,我们将使用Python中的字典类型作为数据源,生成一个按比例分配的饼状图。

import xlsxwriter

# 创建Excel表格
workbook = xlsxwriter.Workbook('pie_chart.xlsx')
worksheet = workbook.add_worksheet()

# 设置表格格式
bold = workbook.add_format({'bold': True})

# 写入数据
worksheet.write('A1', '部门', bold)
worksheet.write('B1', '销售额', bold)

data = {'技术部': 30000, '市场部': 20000, '财务部': 15000}

row_index = 1
for department, sales in data.items():
    worksheet.write(row_index, 0, department)
    worksheet.write(row_index, 1, sales)
    row_index += 1

# 创建饼状图
chart = workbook.add_chart({'type': 'pie'})

# 设置图表数据
chart.add_series({
    'name': '销售额',
    'categories': '=Sheet1!$A$2:$A$4',
    'values': '=Sheet1!$B$2:$B$4',
})

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

# 关闭Excel表格
workbook.close()

在该示例中,我们首先创建一个Workbook对象,并使用add_worksheet()方法创建一个名为“Sheet1”的工作表。接着,我们使用write()方法向工作表中写入数据。然后使用add_chart()方法创建一个类型为“pie”的饼状图,使用add_series()方法设置图表数据,最后使用insert_chart()方法将图表插入到工作表中。

4. 总结

通过上述示例,我们可以看到,使用xlsxwriter库生成图表非常简单。只需要创建一个Workbook对象,然后向工作表中写入数据,并使用Chart对象创建图表并设置数据源和样式,最后将图表插入到工作表中。同时还可以使用Python中丰富的数据结构和算法来生成数据源,或者使用其他Python库来读取数据源。