美文网首页Python高效办公
openpyxl3.0官方文档(9)—— 条形图和柱形图

openpyxl3.0官方文档(9)—— 条形图和柱形图

作者: Sinchard | 来源:发表于2020-07-04 06:03 被阅读0次

    在条形图中,值以水平条或垂直列的形式展示。

    垂直、水平和堆叠条形图¶

    下列设置影响不同的图表类型:

    • 通过分别将type设置为colbar,在垂直条形图和水平条形图之间切换。
    • 使用堆叠图表时,需要将overlap设置为100。
    • 如果条是水平的,则x轴和y轴是相反的。


      bar.png

      下面代码将生成上面四个图表。

        from openpyxl import Workbook
        from openpyxl.chart import BarChart, Series, Reference
        
        wb = Workbook(write_only=True)
        ws = wb.create_sheet()
        
        rows = [
            ('Number', 'Batch 1', 'Batch 2'),
            (2, 10, 30),
            (3, 40, 60),
            (4, 50, 70),
            (5, 20, 10),
            (6, 10, 40),
            (7, 50, 30),
        ]
        
        
        for row in rows:
            ws.append(row)
        
        
        chart1 = BarChart()
        chart1.type = "col"
        chart1.style = 10
        chart1.title = "Bar Chart"
        chart1.y_axis.title = 'Test number'
        chart1.x_axis.title = 'Sample length (mm)'
        
        data = Reference(ws, min_col=2, min_row=1, max_row=7, max_col=3)
        cats = Reference(ws, min_col=1, min_row=2, max_row=7)
        chart1.add_data(data, titles_from_data=True)
        chart1.set_categories(cats)
        chart1.shape = 4
        ws.add_chart(chart1, "A10")
        
        from copy import deepcopy
        
        chart2 = deepcopy(chart1)
        chart2.style = 11
        chart2.type = "bar"
        chart2.title = "Horizontal Bar Chart"
        
        ws.add_chart(chart2, "G10")
        
        
        chart3 = deepcopy(chart1)
        chart3.type = "col"
        chart3.style = 12
        chart3.grouping = "stacked"
        chart3.overlap = 100
        chart3.title = 'Stacked Chart'
        
        ws.add_chart(chart3, "A27")
        
        
        chart4 = deepcopy(chart1)
        chart4.type = "bar"
        chart4.style = 13
        chart4.grouping = "percentStacked"
        chart4.overlap = 100
        chart4.title = 'Percent Stacked Chart'
        
        ws.add_chart(chart4, "G27")
        
        wb.save("bar.xlsx")
        
    

    三维条形图¶

    也可以创建三维条形图

        from openpyxl import Workbook
        from openpyxl.chart import (
            Reference,
            Series,
            BarChart3D,
        )
        
        wb = Workbook()
        ws = wb.active
        
        rows = [
            (None, 2013, 2014),
            ("Apples", 5, 4),
            ("Oranges", 6, 2),
            ("Pears", 8, 3)
        ]
        
        for row in rows:
            ws.append(row)
        
        data = Reference(ws, min_col=2, min_row=1, max_col=3, max_row=4)
        titles = Reference(ws, min_col=1, min_row=2, max_row=4)
        chart = BarChart3D()
        chart.title = "3D Bar Chart"
        chart.add_data(data=data, titles_from_data=True)
        chart.set_categories(titles)
        
        ws.add_chart(chart, "E5")
        wb.save("bar3d.xlsx")
        
    

    这将生成一个简单的三维条形图。


    bar3D.png

    相关文章

      网友评论

        本文标题:openpyxl3.0官方文档(9)—— 条形图和柱形图

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