先决条件: 阅读 & 写 使用openpyxl创建excel工作表
Openpyxl
是一个Python库,使用它可以对excel文件执行多种操作,如读取、写入、算术操作和绘制图形。让我们看看如何使用实时数据绘制不同的图表。
图表由至少一系列的一个或多个数据点组成。系列本身由单元格范围的引用组成。
要在excel工作表上绘制图表,首先要创建特定图表类(如条形图、折线图等)的图表对象。创建图表对象后,在其中插入数据,最后将该图表对象添加到图纸对象中。
代码#1: 绘制条形图 要在excel工作表上打印条形图,请使用 BarChart class
来自openpyxl。图表子模块。
# import openpyxl module import openpyxl # import BarChart class from openpyxl.chart sub_module from openpyxl.chart import BarChart,Reference # Call a Workbook() function of openpyxl # to create a new blank Workbook object wb = openpyxl.Workbook() # Get workbook active sheet # from the active attribute. sheet = wb.active # write o to 9 in 1st column of the active sheet for i in range ( 10 ): sheet.append([i]) # create data for plotting values = Reference(sheet, min_col = 1 , min_row = 1 , max_col = 1 , max_row = 10 ) # Create object of BarChart class chart = BarChart() # adding data to the Bar chart object chart.add_data(values) # set the title of the chart chart.title = " BAR-CHART " # set the title of the x-axis chart.x_axis.title = " X_AXIS " # set the title of the y-axis chart.y_axis.title = " Y_AXIS " # add chart to the sheet # the top-left corner of a chart # is anchored to cell E2 . sheet.add_chart(chart, "E2" ) # save the file wb.save( "barChart.xlsx" ) |
输出:
代码#2: 绘制三维条形图
要在excel工作表上打印三维条形图,请使用 BarChart3D class
来自openpyxl。图表子模块。
# import openpyxl module import openpyxl # import BarChart3D class from openpyxl.chart sub_module from openpyxl.chart import BarChart3D,Reference # write o to 9 in 1st column of the active sheet for i in range ( 10 ): sheet.append([i]) values = Reference(sheet, min_col = 1 , min_row = 1 , max_col = 1 , max_row = 10 ) # Create object of BarChart3D class chart = BarChart3D() chart.add_data(values) # set the title of the chart chart.title = " BAR-CHART3D " # set the title of the x-axis chart.x_axis.title = " X AXIS " # set the title of the y-axis chart.y_axis.title = " Y AXIS " # add chart to the sheet # the top-left corner of a chart # is anchored to cell E2. sheet.add_chart(chart, "E2" ) # save the file wb.save( "BarChart3D.xlsx" ) |
输出:
代码#3: 绘制面积图
要在excel工作表上绘制面积图,请使用 AreaChart class
来自openpyxl。图表子模块。
import openpyxl # import AreaChart class from openpyxl.chart sub_module from openpyxl.chart import AreaChart,Reference wb = openpyxl.Workbook() sheet = wb.active # write o to 9 in 1st column of the active sheet for i in range ( 10 ): sheet.append([i]) values = Reference(sheet, min_col = 1 , min_row = 1 , max_col = 1 , max_row = 10 ) # create object of AreaChart class chart = AreaChart() chart.add_data(values) # set the title of the chart chart.title = " AREA-CHART " # set the title of the x-axis chart.x_axis.title = " X-AXIS " # set the title of the y-axis chart.y_axis.title = " Y-AXIS " # add chart to the sheet # the top-left corner of a chart # is anchored to cell E2 . sheet.add_chart(chart, "E2" ) # save the file wb.save( "AreaChart.xlsx" ) |
输出:
代码#4: 绘制3D面积图
要在excel工作表上打印三维面积图,请使用 AreaChart3D class
来自openpyxl。图表子模块。
import openpyxl # import AreaChart3D class from openpyxl.chart sub_module from openpyxl.chart import AreaChart3D,Reference wb = openpyxl.Workbook() sheet = wb.active # write o to 9 in 1st column of the active sheet for i in range ( 10 ): sheet.append([i]) values = Reference(sheet, min_col = 1 , min_row = 1 , max_col = 1 , max_row = 10 ) # Create object of AreaChart3D class chart = AreaChart3D() chart.add_data(values) # set the title of the chart chart.title = " AREA-CHART3D " # set the title of the x-axis chart.x_axis.title = " X-AXIS " # set the title of the y-axis chart.y_axis.title = " Y-AXIS " # add chart to the sheet # the top-left corner of a chart # is anchored to cell E2 . sheet.add_chart(chart, "E2" ) # save the file wb.save( "AreaChart3D.xlsx" ) |
输出:
代码#5: 画一张折线图。 要在excel工作表上绘制折线图,请使用 LineChart class
来自openpyxl。图表子模块。
# import openpyxl module import openpyxl # import LineChart class from openpyxl.chart sub_module from openpyxl.chart import LineChart,Reference wb = openpyxl.Workbook() sheet = wb.active # write o to 9 in 1st column of the active sheet for i in range ( 10 ): sheet.append([i]) values = Reference(sheet, min_col = 1 , min_row = 1 , max_col = 1 , max_row = 10 ) # Create object of LineChart class chart = LineChart() chart.add_data(values) # set the title of the chart chart.title = " LINE-CHART " # set the title of the x-axis chart.x_axis.title = " X-AXIS " # set the title of the y-axis chart.y_axis.title = " Y-AXIS " # add chart to the sheet # the top-left corner of a chart # is anchored to cell E2 . sheet.add_chart(chart, "E2" ) # save the file wb.save( "LineChart.xlsx" ) |
输出:
代码#6: 绘制一个三维折线图。 为了在excel表格上绘制三维折线图,我们必须使用 LineChart3D class
来自openpyxl。图表子模块。
import openpyxl # import LineChart3D class from openpyxl.chart sub_module from openpyxl.chart import LineChart3D,Reference wb = openpyxl.Workbook() sheet = wb.active # write o to 9 in 1st column of the active sheet for i in range ( 10 ): sheet.append([i]) values = Reference(sheet, min_col = 1 , min_row = 1 , max_col = 1 , max_row = 10 ) # Create object of LineChart3D class chart = LineChart3D() chart.add_data(values) # set the title of the chart chart.title = " LINE-CHART3D " # set the title of the x-axis chart.x_axis.title = " X-AXIS " # set the title of the y-axis chart.y_axis.title = " Y-AXIS " # add chart to the sheet # the top-left corner of a chart # is anchored to cell E2 . sheet.add_chart(chart, "E2" ) # save the file wb.save( "LineChart3D.xlsx" ) |
输出: