有时候我们会用到excel中的面积图来展现某一事物的趋势,那么如何使用python来制作面积图呢?

原始数据


面积图又分二维面积图和3D面积图,首先来看3D面积图如何处理。完整代码为:

from openpyxl import load_workbook from openpyxl.chart import Reference,AreaChart3D wb = load_workbook(filename = '员工统计.xlsx') #查看所有sheet名字 sheetname = wb.sheetnames[0] #指定其中一个sheet ws = wb[sheetname] #3D面积图 chart = AreaChart3D() chart.title = sheetname chart.style = 10 chart.y_axis.scaling.min = 0 # 最小值 chart.y_axis.majorUnit = 1000 # 步长值 chart.y_axis.scaling.max = 15000 # 最大值 chart.width = 20 chart.height = 13 chart.legend = None #刻度线的显示位置 cross: 两边 in: 内 out: 外 chart.y_axis.minorTickMark = 'in' chart.x_axis.minorTickMark = 'in' #去除线条 chart.y_axis.majorGridlines = None chart.x_axis.title = '姓名' chart.y_axis.title = '薪资' chart.z_axis.title = '绩效' cat = Reference(ws, min_col=1, min_row=3, max_row=6) data = Reference(ws, min_col=4, min_row=2, max_col=6, max_row=6) chart.add_data(data, titles_from_data=True) chart.set_categories(cat) ws.add_chart(chart, "A10") wb.save("area.xlsx")

效果为:


二维面积图的处理代码为:

from openpyxl import load_workbook from openpyxl.chart import AreaChart,Reference wb = load_workbook(filename = '员工统计.xlsx') #查看所有sheet名字 sheetname = wb.sheetnames[0] #指定其中一个sheet ws = wb[sheetname] #二维面积图 chart = AreaChart() chart.title = sheetname chart.style = 10 chart.y_axis.scaling.min = 0 # 最小值 chart.y_axis.majorUnit = 1000 # 步长值 chart.y_axis.scaling.max = 15000 # 最大值 chart.width = 20 chart.height = 13 #刻度线的显示位置 cross: 两边 in: 内 out: 外 chart.y_axis.minorTickMark = 'in' chart.x_axis.minorTickMark = 'in' #去除线条 chart.y_axis.majorGridlines = None chart.x_axis.title = '姓名' chart.y_axis.title = '薪资' cat = Reference(ws, min_col=1, min_row=3, max_row=6) data = Reference(ws, min_col=4, min_row=2, max_col=6, max_row=6) chart.add_data(data, titles_from_data=True) chart.set_categories(cat) ws.add_chart(chart, "A10") wb.save("area.xlsx")

效果图为: