美文网首页Python高效办公
openpyxl3.0官方文档(13)—— 饼图

openpyxl3.0官方文档(13)—— 饼图

作者: Sinchard | 来源:发表于2020-07-08 12:18 被阅读0次

    饼图¶

    饼图将数据绘制为圆的切片,每个切片表示整个圆的百分比。切片按顺时针方向绘制,0°位于圆的顶部。饼图只接受一系列数值,标题将默认为系列的标题。

        from openpyxl import Workbook
        
        from openpyxl.chart import (
            PieChart,
            ProjectedPieChart,
            Reference
        )
        from openpyxl.chart.series import DataPoint
        
        data = [
            ['Pie', 'Sold'],
            ['Apple', 50],
            ['Cherry', 30],
            ['Pumpkin', 10],
            ['Chocolate', 40],
        ]
        
        wb = Workbook()
        ws = wb.active
        
        for row in data:
            ws.append(row)
        
        pie = PieChart()
        labels = Reference(ws, min_col=1, min_row=2, max_row=5)
        data = Reference(ws, min_col=2, min_row=1, max_row=5)
        pie.add_data(data, titles_from_data=True)
        pie.set_categories(labels)
        pie.title = "Pies sold by category"
        
        # Cut the first slice out of the pie
        slice = DataPoint(idx=0, explosion=20)
        pie.series[0].data_points = [slice]
        
        ws.add_chart(pie, "D1")
        
        
        ws = wb.create_sheet(title="Projection")
        
        data = [
            ['Page', 'Views'],
            ['Search', 95],
            ['Products', 4],
            ['Offers', 0.5],
            ['Sales', 0.5],
        ]
        
        for row in data:
            ws.append(row)
        
        projected_pie = ProjectedPieChart()
        projected_pie.type = "pie"
        projected_pie.splitType = "val" # split by value
        labels = Reference(ws, min_col=1, min_row=2, max_row=5)
        data = Reference(ws, min_col=2, min_row=1, max_row=5)
        projected_pie.add_data(data, titles_from_data=True)
        projected_pie.set_categories(labels)
        
        ws.add_chart(projected_pie, "A10")
        
        from copy import deepcopy
        projected_bar = deepcopy(projected_pie)
        projected_bar.type = "bar"
        projected_bar.splitType = 'pos' # split by position
        
        ws.add_chart(projected_bar, "A27")
        
        wb.save("pie.xlsx")
        
    
    在这里插入图片描述

    投影饼图¶

    投影饼图从饼图中提取一些切片并投影到第二个饼图或条形图中。当数据系列中有很多较小的项时,这非常有用。图表可以按百分比、值(value)或位置进行拆分。如果未设置任何内容,则应用程序将决定使用哪个。此外,还可以自定义拆分。


    在这里插入图片描述

    三维饼图¶

    饼图也可以用三维效果创建。

        from openpyxl import Workbook
        
        from openpyxl.chart import (
            PieChart3D,
            Reference
        )
        
        data = [
            ['Pie', 'Sold'],
            ['Apple', 50],
            ['Cherry', 30],
            ['Pumpkin', 10],
            ['Chocolate', 40],
        ]
        
        wb = Workbook()
        ws = wb.active
        
        for row in data:
            ws.append(row)
        
        pie = PieChart3D()
        labels = Reference(ws, min_col=1, min_row=2, max_row=5)
        data = Reference(ws, min_col=2, min_row=1, max_row=5)
        pie.add_data(data, titles_from_data=True)
        pie.set_categories(labels)
        pie.title = "Pies sold by category"
        
        
        ws.add_chart(pie, "D1")
        
        wb.save("pie3D.xlsx")
        
    
    在这里插入图片描述

    渐变饼图¶

    也可以使用渐变序列创建饼图。


    在这里插入图片描述

    相关文章

      网友评论

        本文标题:openpyxl3.0官方文档(13)—— 饼图

        本文链接:https://www.haomeiwen.com/subject/gwoqcktx.html