如何使用python的openpyxl进行强大的图表处理
? ? ? ?openpyxl模塊讓python程序能夠讀取和修改Excel電子表格文件,生成需要的新點子表格。從許多的幾萬行級的電子表格中定位需要的數據或需要處理的數據,并進行精細化加工,替代低效率的腦殘體力勞動,正是openpyx的可愛之處。
? ? ? ?之前在”python進階寶典10-Excel處理(https://blog.csdn.net/ebzxw/article/details/80261507)“中,已經詳細的列明了openpyxl對excel的各類讀寫基本操作,以及設置字體、公式、行高、列寬、合并拆分單元格、生成凍結窗口、圖表處理等各種操作的實現方法,并列出了code。
? ? ? ?openpyxl通過charts進行圖表處理,詳細官方文檔鏈接:http://openpyxl.readthedocs.io/en/stable/charts/bar.html
? ? ? ?這里在就強大圖表處理功能進行下補充。實在是太強大,各種圖表都有如下。
? ? ? ?
? ? ? ? 以BarChart為例,?在BarChart中,圖表類型可以通過眾多參數設置。
? ? ? ?值被繪制為水平條或垂直列:通過將類型設置為COL或BAR,即可在垂直和水平條形圖之間切換;當使用堆疊圖時,重疊需要設置為100。可以通過chartObj.y_axis.title='Test_y', chartObj.x_axis.title='Test_x' 設置坐標軸的屬性;通過chartObj.type='col'? ?(col為縱向,bar為橫向),chartObj.title='Bar chart' 等來設置圖表的屬性等。
? ? ? ? 以下代碼生成4種2D圖表。
from openpyxl import Workbook from openpyxl.chart import BarChart, Series, Referencewb = 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 deepcopychart2 = 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")? ? ? ? ? ? 代碼驗證通過,效果如下:
? ? ? ? ? ??以下代碼生成3D圖表。
from openpyxl import Workbook from openpyxl.chart import (Reference,Series,BarChart3D, )wb = Workbook() ws = wb.activerows = [(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")? ? ? ? ? ? ?代碼驗證通過,效果如下:總結
以上是生活随笔為你收集整理的如何使用python的openpyxl进行强大的图表处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何写出更具有Python风格的代码
- 下一篇: C语言打印心形,爱心打印