Python Excel图表的创建和操作是怎样的

Admin 2022-10-08 群英技术资讯 498 次浏览

这篇文章我们来了解“Python Excel图表的创建和操作是怎样的”的内容,小编通过实际的案例向大家展示了操作过程,简单易懂,有需要的朋友可以参考了解看看,那么接下来就跟随小编的思路来往下学习吧,希望对大家学习或工作能有帮助。



学习完如何生成一个 excel 文件之后,接下来我们继续学习一下如何在 excel 文件中写入一个比较简单的图表,先来看一下所需要的几个函数(这些函数都是通过工作簿执行出来的)。
函数名 说明 参数
add_chart() 创建图表对象 {type:样式}
add_series() 定义需要展示的数据 字典
set_title() 定义图表title 字符串

add_series 参数

参数 说明
categories 展示的标题  =Sheet1!$A$1:$A$4
Shert1:工作簿名称
$A1 : 1:1:A$4 表示从第A行的第一个值到第四个值去展示标题
values 展示的数据 =Sheet1!$B1 : 1:1:B$4
Shert1:工作簿名称
$B1 : 1:1:B$4 表示从第A行的第一个值到第四个值去展示标题
name 表名  

$A$1:$A$4 表示从第A行的第一个值到第四个值去展示标题

图表的样式

样式名 说明
area 区域样式表
bar 条形样式表
column 柱状样式表
line 线条样式表
pie 饼图样式表
doughnut 圆环样式表
scatter 散点样式表
stock 库存样式表
rader 雷达样式表

结合 study.xlsx 文件 将学生成绩以表图形式展示

这里继续使用上一章节的 “将项目中的 study.xlsx 文件的内容写入 write.xlsx” 的案例;

代码示例如下:

# coding:utf-8

import xlsxwriter
import xlrd


# excel = xlsxwriter.Workbook('write.xlsx')       # 初始化 excel 对象
# book = excel.add_worksheet('study')             # 添加工作簿
#
# title = ['姓名', '性别', '年龄', '成绩', '等级']   # 定义 write.xlsx 的首行内容
#
# for index, data in enumerate(title):        # for循环 利用枚举函数将 title 的内容写入 "write.xlsx" 的首行
#     book.write(0, index, data)
# excel.close()


def read():             # 定义一个 read 函数读取 "study.xlsx" 文件
    result = []
    excel = xlrd.open_workbook('study.xlsx')
    book = excel.sheet_by_name('学生手册')
    for i in book.get_rows():
        content = []
        for j in i:
            content.append(j.value)
        result.append(content)
    return result


def write(content):     # 定义一个 write 函数 将读取到 "study.xlsx" 的内容写入到 "write.xlsx" 文件
    excel = xlsxwriter.Workbook('write.xlsx')
    book = excel.add_worksheet('study')

    for index, data in enumerate(content):
        print(data)
        for sub_index, sub_data in enumerate(data):
            # print(sub_index, sub_data)
            book.write(index, sub_index, sub_data)

    book1 = excel.add_worksheet('学生等级')     # 定义 "学生等级" 工作簿
    data = [                                   # 定义 data 列表 用以存放学生成绩所处等级与数量
        ['优秀', '良好', '中', '差'],
        [15, 25, 55, 5]
    ]

    book1.write_column('A1', data[0])       # write_column() 函数,按行添加(即 A1 行添加 data 列表的 0 索引的内容)
    book1.write_column('B1', data[1])

    chart = excel.add_chart({'type': 'column'})     # 定义图表样式为 柱状样式表
    chart.add_series({                              # 添加需要展示的数据
        'categories': '=学生等级!$A1:$A4',
        'values': '=学生等级!$B1:$B4',
        'name': '成绩占比'
    })
    chart.set_title({'name': '成绩占比图表'})         # 定义图表title
    book1.insert_chart('A10', chart)                # 将 chart 放在 excel 表格对应工作簿的 A10 位置

    excel.close()


if __name__ == '__main__':
    result = read()
    write(result)

运行结果如下:

拓展:再试试饼状图与条形样式图

代码示例如下:

# coding:utf-8

import xlsxwriter
import xlrd


# excel = xlsxwriter.Workbook('write.xlsx')       # 初始化 excel 对象
# book = excel.add_worksheet('study')             # 添加工作簿
#
# title = ['姓名', '性别', '年龄', '成绩', '等级']   # 定义 write.xlsx 的首行内容
#
# for index, data in enumerate(title):        # for循环 利用枚举函数将 title 的内容写入 "write.xlsx" 的首行
#     book.write(0, index, data)
# excel.close()


def read():             # 定义一个 read 函数读取 "study.xlsx" 文件
    result = []
    excel = xlrd.open_workbook('study.xlsx')
    book = excel.sheet_by_name('学生手册')
    for i in book.get_rows():
        content = []
        for j in i:
            content.append(j.value)
        result.append(content)
    return result


def write(content):     # 定义一个 write 函数 将读取到 "study.xlsx" 的内容写入到 "write.xlsx" 文件
    excel = xlsxwriter.Workbook('write.xlsx')
    book = excel.add_worksheet('study')

    for index, data in enumerate(content):
        print(data)
        for sub_index, sub_data in enumerate(data):
            # print(sub_index, sub_data)
            book.write(index, sub_index, sub_data)

    book1 = excel.add_worksheet('学生等级')     # 定义 "学生等级" 工作簿
    data = [                                   # 定义 data 列表 用以存放学生成绩所处等级与数量
        ['优秀', '良好', '中', '差'],
        [15, 25, 55, 5]
    ]

    book1.write_column('A1', data[0])       # write_column() 函数,按行添加(即 A1 行添加 data 列表的 0 索引的内容)
    book1.write_column('B1', data[1])

    chart = excel.add_chart({'type': 'column'})     # 定义图表样式为 柱状样式表
    chart.add_series({                              # 添加需要展示的数据
        'categories': '=学生等级!$A1:$A4',
        'values': '=学生等级!$B1:$B4',
        'name': '成绩占比'
    })
    chart.set_title({'name': '成绩占比图表'})         # 定义图表title
    book1.insert_chart('A10', chart)                # 将 chart 放在 excel 表格对应工作簿的 A10 位置


    chart = excel.add_chart({'type': 'bar'})
    chart.add_series({
        'categories': '=学生等级!$A1:$A4',
        'values': '=学生等级!$B1:$B4',
        'name': '成绩占比'
    })
    chart.set_title({'name': '成绩占比图表'})
    book1.insert_chart('A25', chart)


    chart = excel.add_chart({'type': 'pie'})
    chart.add_series({
        'categories': '=学生等级!$A1:$A4',
        'values': '=学生等级!$B1:$B4',
        'name': '成绩占比'
    })
    chart.set_title({'name': '成绩占比图表'})
    book1.insert_chart('A40', chart)

    excel.close()


if __name__ == '__main__':
    result = read()
    write(result)

运行结果如下:


以上就是关于“Python Excel图表的创建和操作是怎样的”的介绍了,感谢各位的阅读,如果大家想要了解更多相关的内容,欢迎关注群英网络,小编每天都会为大家更新不同的知识。
群英智防CDN,智能加速解决方案

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

猜你喜欢

成为群英会员,开启智能安全云计算之旅

立即注册
专业资深工程师驻守
7X24小时快速响应
一站式无忧技术支持
免费备案服务
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部
在线客服
在线客服