openpyxl3.0官方文档(22)—— 仪表盘图

仪表盘图将饼图和甜甜圈图组合在一起以创建仪表盘。第一个图表是一个有四个切片的甜甜圈图表。前三片与量具的颜色相对应;第四片是甜甜圈的一半,是隐形的。
将添加包含三个切片的饼图。第一片和第三片是看不见的,这样第二片就可以充当量规上的针。
这些效果是使用数据系列中各个数据点的图形属性实现的。

    from openpyxl import Workbook
    
    from openpyxl.chart import PieChart, DoughnutChart, Series, Reference
    from openpyxl.chart.series import DataPoint
    
    
    data = [
        ["Donut", "Pie"],
        [25, 75],
        [50, 1],
        [25, 124],
        [100],
    ]
    
    # based on http://www.excel-easy.com/examples/gauge-chart.html
    
    wb = Workbook()
    ws = wb.active
    for row in data:
        ws.append(row)
    
    # First chart is a doughnut chart
    c1 = DoughnutChart(firstSliceAng=270, holeSize=50)
    c1.title = "Code coverage"
    c1.legend = None
    
    ref = Reference(ws, min_col=1, min_row=2, max_row=5)
    s1 = Series(ref, title_from_data=False)
    
    slices = [DataPoint(idx=i) for i in range(4)]
    slices[0].graphicalProperties.solidFill = "FF3300" # red
    slices[1].graphicalProperties.solidFill = "FCF305" # yellow
    slices[2].graphicalProperties.solidFill = "1FB714" # green
    slices[3].graphicalProperties.noFill = True # invisible
    
    s1.data_points = slices
    c1.series = [s1]
    
    # Second chart is a pie chart
    c2 = PieChart(firstSliceAng=270)
    c2.legend = None
    
    ref = Reference(ws, min_col=2, min_row=2, max_col=2, max_row=4)
    s2 = Series(ref, title_from_data=False)
    
    slices = [DataPoint(idx=i) for i in range(3)]
    slices[0].graphicalProperties.noFill = True # invisible
    slices[1].graphicalProperties.solidFill = "000000" # black needle
    slices[2].graphicalProperties.noFill = True # invisible
    s2.data_points = slices
    c2.series = [s2]
    
    c1 += c2 # combine charts
    
    ws.add_chart(c1, "D1")
    
    wb.save("gauge.xlsx")
    
```![在这里插入图片描述](https://upload-images.jianshu.io/upload_images/10826093-4f103555a7af2e8e?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

你可能感兴趣的:(openpyxl3.0官方文档(22)—— 仪表盘图)