zoukankan      html  css  js  c++  java
  • python 生成图表

     

     

    python写入excel(xlswriter)--生成图表

    折线图

    # -*- coding:utf-8 -*-
    
    import xlsxwriter
    
    # 创建一个excel
    workbook = xlsxwriter.Workbook("chart_line.xlsx")
    # 创建一个sheet
    worksheet = workbook.add_worksheet()
    # worksheet = workbook.add_worksheet("bug_analysis")
    
    # 自定义样式,加粗
    bold = workbook.add_format({'bold': 1})
    
    # --------1、准备数据并写入excel---------------
    # 向excel中写入数据,建立图标时要用到
    headings = ['Number', 'testA', 'testB']
    data = [
        ['2017-9-1', '2017-9-2', '2017-9-3', '2017-9-4', '2017-9-5', '2017-9-6'],
        [10, 40, 50, 20, 10, 50],
        [30, 60, 70, 50, 40, 30],
    ]
    
    # 写入表头
    worksheet.write_row('A1', headings, bold)
    
    # 写入数据
    worksheet.write_column('A2', data[0])
    worksheet.write_column('B2', data[1])
    worksheet.write_column('C2', data[2])
    
    # --------2、生成图表并插入到excel---------------
    # 创建一个柱状图(line chart)
    chart_col = workbook.add_chart({'type': 'line'})
    
    # 配置第一个系列数据
    chart_col.add_series({
        # 这里的sheet1是默认的值,因为我们在新建sheet时没有指定sheet名
        # 如果我们新建sheet时设置了sheet名,这里就要设置成相应的值
        'name': '=Sheet1!$B$1',
        'categories': '=Sheet1!$A$2:$A$7',
        'values':   '=Sheet1!$B$2:$B$7',
        'line': {'color': 'red'},
    })
    
    # 配置第二个系列数据
    chart_col.add_series({
        'name': '=Sheet1!$C$1',
        'categories':  '=Sheet1!$A$2:$A$7',
        'values':   '=Sheet1!$C$2:$C$7',
        'line': {'color': 'yellow'},
    })
    
    # 配置第二个系列数据(用了另一种语法)
    # chart_col.add_series({
    #     'name': ['Sheet1', 0, 2],
    #     'categories': ['Sheet1', 1, 0, 6, 0],
    #     'values': ['Sheet1', 1, 2, 6, 2],
    #     'line': {'color': 'yellow'},
    # })
    
    # 设置图表的title 和 x,y轴信息
    chart_col.set_title({'name': 'The xxx site Bug Analysis'})
    chart_col.set_x_axis({'name': 'Test number'})
    chart_col.set_y_axis({'name':  'Sample length (mm)'})
    
    # 设置图表的风格
    chart_col.set_style(1)
    
    # 把图表插入到worksheet并设置偏移
    worksheet.insert_chart('A10', chart_col, {'x_offset': 25, 'y_offset': 10})
    
    workbook.close() 

    柱状图:

    # -*- coding:utf-8 -*-
    
    import xlsxwriter
    
    # 创建一个excel
    workbook = xlsxwriter.Workbook("chart_column.xlsx")
    # 创建一个sheet
    worksheet = workbook.add_worksheet()
    # worksheet = workbook.add_worksheet("bug_analysis")
    
    # 自定义样式,加粗
    bold = workbook.add_format({'bold': 1})
    
    # --------1、准备数据并写入excel---------------
    # 向excel中写入数据,建立图标时要用到
    headings = ['Number', 'testA', 'testB']
    data = [
        ['2017-9-1', '2017-9-2', '2017-9-3', '2017-9-4', '2017-9-5', '2017-9-6'],
        [10, 40, 50, 20, 10, 50],
        [30, 60, 70, 50, 40, 30],
    ]
    
    # 写入表头
    worksheet.write_row('A1', headings, bold)
    
    # 写入数据
    worksheet.write_column('A2', data[0])
    worksheet.write_column('B2', data[1])
    worksheet.write_column('C2', data[2])
    
    # --------2、生成图表并插入到excel---------------
    # 创建一个柱状图(column chart)
    chart_col = workbook.add_chart({'type': 'column'})
    
    # 配置第一个系列数据
    chart_col.add_series({
        # 这里的sheet1是默认的值,因为我们在新建sheet时没有指定sheet名
        # 如果我们新建sheet时设置了sheet名,这里就要设置成相应的值
        'name': '=Sheet1!$B$1',
        'categories': '=Sheet1!$A$2:$A$7',
        'values':   '=Sheet1!$B$2:$B$7',
        'line': {'color': 'red'},
    })
    
    # 配置第二个系列数据(用了另一种语法)
    chart_col.add_series({
        'name': '=Sheet1!$C$1',
        'categories':  '=Sheet1!$A$2:$A$7',
        'values':   '=Sheet1!$C$2:$C$7',
        'line': {'color': 'yellow'},
    })
    
    # 配置第二个系列数据(用了另一种语法)
    # chart_col.add_series({
    #     'name': ['Sheet1', 0, 2],
    #     'categories': ['Sheet1', 1, 0, 6, 0],
    #     'values': ['Sheet1', 1, 2, 6, 2],
    #     'line': {'color': 'yellow'},
    # })
    
    # 设置图表的title 和 x,y轴信息
    chart_col.set_title({'name': 'The xxx site Bug Analysis'})
    chart_col.set_x_axis({'name': 'Test number'})
    chart_col.set_y_axis({'name':  'Sample length (mm)'})
    
    # 设置图表的风格
    chart_col.set_style(1)
    
    # 把图表插入到worksheet以及偏移
    worksheet.insert_chart('A10', chart_col, {'x_offset': 25, 'y_offset': 10})
    
    workbook.close()

    效果图

    PS:

    其实前面两个图只变动一点:把 line 个性为 column

    chart_col = workbook.add_chart({'type': 'column'})

    三、饼图:

    复制代码
    # -*- coding:utf-8 -*-
    
    import xlsxwriter
    
    # 创建一个excel
    workbook = xlsxwriter.Workbook("chart_pie.xlsx")
    # 创建一个sheet
    worksheet = workbook.add_worksheet()
    
    # 自定义样式,加粗
    bold = workbook.add_format({'bold': 1})
    
    # --------1、准备数据并写入excel---------------
    # 向excel中写入数据,建立图标时要用到
    data = [
        ['closed', 'active', 'reopen', 'NT'],
        [1012, 109, 123, 131],
    ]
    
    # 写入数据
    worksheet.write_row('A1', data[0], bold)
    worksheet.write_row('A2', data[1])
    
    # --------2、生成图表并插入到excel---------------
    # 创建一个柱状图(pie chart)
    chart_col = workbook.add_chart({'type': 'pie'})
    
    # 配置第一个系列数据
    chart_col.add_series({
        'name': 'Bug Analysis',
        'categories': '=Sheet1!$A$1:$D$1',
        'values': '=Sheet1!$A$2:$D$2',
        'points': [
            {'fill': {'color': '#00CD00'}},
            {'fill': {'color': 'red'}},
            {'fill': {'color': 'yellow'}},
            {'fill': {'color': 'gray'}},
        ],
    
    })
    
    # 设置图表的title 和 x,y轴信息
    chart_col.set_title({'name': 'Bug Analysis'})
    
    # 设置图表的风格
    chart_col.set_style(10)
    
    # 把图表插入到worksheet以及偏移
    worksheet.insert_chart('B10', chart_col, {'x_offset': 25, 'y_offset': 10})
    workbook.close()
    复制代码

    效果图:

    参考资料:

    http://xlsxwriter.readthedocs.io/chart_examples.html

    http://xlsxwriter.readthedocs.io/chart.html

  • 相关阅读:
    OCP-1Z0-053-V12.02-541题
    OCP-1Z0-053-V12.02-544题
    OCP-1Z0-053-V12.02-545题
    OCP-1Z0-053-V13.02-711题
    OCP-1Z0-053-V12.02-493题
    OCP-1Z0-053-V13.02-696题
    OCP-1Z0-053-V12.02-522题
    OCP-1Z0-053-V12.02-523题
    OCP-1Z0-053-V12.02-534题
    OCP-1Z0-053-V13.02-692题
  • 原文地址:https://www.cnblogs.com/saryli/p/9936800.html
Copyright © 2011-2022 走看看