Python高效办公

openpyxl3.0官方文档(8)—— 面积图

2020-07-04  本文已影响0人  Sinchard

二维面积图¶

面积图与折线图相似,只是在绘制的线下面的区域被填充。通过将分组设置为“标准”、“堆叠”或“百分比堆叠”,可以获得不同的面积图;默认值为“标准”。

    from openpyxl import Workbook
    from openpyxl.chart import (
        AreaChart,
        Reference,
        Series,
    )
    
    wb = Workbook()
    ws = wb.active
    
    rows = [
        ['Number', 'Batch 1', 'Batch 2'],
        [2, 40, 30],
        [3, 40, 25],
        [4, 50, 30],
        [5, 30, 10],
        [6, 25, 5],
        [7, 50, 10],
    ]
    
    for row in rows:
        ws.append(row)
    
    chart = AreaChart()
    chart.title = "Area Chart"
    chart.style = 13
    chart.x_axis.title = 'Test'
    chart.y_axis.title = 'Percentage'
    
    cats = Reference(ws, min_col=1, min_row=1, max_row=7)
    data = Reference(ws, min_col=2, min_row=1, max_col=3, max_row=7)
    chart.add_data(data, titles_from_data=True)
    chart.set_categories(cats)
    
    ws.add_chart(chart, "A10")
    
    wb.save("area.xlsx")
    
area.png

三维面积图¶

也可以创建三维面积图

    from openpyxl import Workbook
    from openpyxl.chart import (
        AreaChart3D,
        Reference,
        Series,
    )
    
    wb = Workbook()
    ws = wb.active
    
    rows = [
        ['Number', 'Batch 1', 'Batch 2'],
        [2, 30, 40],
        [3, 25, 40],
        [4 ,30, 50],
        [5 ,10, 30],
        [6,  5, 25],
        [7 ,10, 50],
    ]
    
    for row in rows:
        ws.append(row)
    
    chart = AreaChart3D()
    chart.title = "Area Chart"
    chart.style = 13
    chart.x_axis.title = 'Test'
    chart.y_axis.title = 'Percentage'
    chart.legend = None
    
    cats = Reference(ws, min_col=1, min_row=1, max_row=7)
    data = Reference(ws, min_col=2, min_row=1, max_col=3, max_row=7)
    chart.add_data(data, titles_from_data=True)
    chart.set_categories(cats)
    
    ws.add_chart(chart, "A10")
    
    wb.save("area3D.xlsx")
    

这将生成一个简单的三维面积图,其中第三个轴可用于放置图例:


area3D.png
上一篇下一篇

猜你喜欢

热点阅读