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://img-blog.csdnimg.cn/20200703104504542.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hc21x,size_16,color_FFFFFF,t_70#pic_center)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值