Python Excel 绘制柱形图 您所在的位置:网站首页 python做柱形图 Python Excel 绘制柱形图

Python Excel 绘制柱形图

2022-05-31 03:10| 来源: 网络整理| 查看: 265

本文主要讲述如何使用Python操作Excel绘制柱形图。

相关代码请参考 https://github.com/RustFisher/python-playground

本文链接:https://www.rustfisher.com/2019/11/19/Python/Python-op-excel_openpyxl_bar_column_chart/

开发工具,环境

PyCharm python3 Office Excel

前面我们已经创建好了一张Excel表。 现在我们要根据已有的数据,往里面添加柱形图。

柱形图 barChart

参考《Python openpyxl Excel绘制柱形图》得知,我们主要使用barChart与barChart3D类。 图表中许多的细节由barChart属性控制。

后文都以chart1来表示柱形图对象 chart1 = barChart() 。

数据来源范围 Reference

首先我们应该确定数据的范围。有数据才好绘图。这里使用的是Reference类来表示数据“引用”范围。

data1 = Reference(st,min_col=2,min_row=1,max_row=7,max_col=3) cats1 = Reference(st,min_col=1,min_row=2,max_row=7)

需要注意的是,范围的下标是从1开始的。 这里的data1把标题也框进去了。设定数据的时候,需要设置Titles_from_data=True

chart1.add_data(data1,Titles_from_data=True)

设置种类使用set_categorIEs方法,也是把一个范围(Reference)的数据传入。

chart1.set_categorIEs(cats1) 柱子方向控制 type

方向由属性type来控制,有2个可选参数:bar表示横向,col表示竖直。

chart1.type = "bar" # 横向柱形图 chart1.type = "col" # 纵向柱形图 标题 Title

属性Title控制标题。如果置为None则不显示标题。

图表的标题 chart1.Title = "日均值对比"

坐标的标题,首先需要拿到x,y的坐标。

chart1.y_axis.Title = '数值' chart1.x_axis.Title = st.cell(column=1,row=1).value # 直接用单元格的内容做标题 添加图表

add_chart将图表添加到sheet中。图表的左上角对齐某个单元格。下面是对齐A8。

st.add_chart(chart1,'A8') 3D柱形图 barChart3D 柱子的形状 shape

默认是立方体,但也可以从下面的形状里选一个。

{'Box','pyramID','pyramIDToMax','conetoMax','cone','cylinder'}

chart1.type = 'cone'

Box 是立方体,中规中矩。 pyramID 是金字塔,顶部也是尖的。 cone 是圆锥,看起来很尖锐。 cylinder 是圆柱。

配色风格 style

style 会影响图表的配色风格,一般用10比较多彩多样。

代码示例

绘制图表用的数据来自运营的Python指南 - Python 操作Excel。 我们在已有的表格中添加柱形图。代码参考python-playground - Github

@H_301_123@绘制2D柱形图 def create_bar_chart_1(file_path): """ 插入柱形图 :param file_path: Excel 文件路径 :return: None """ wb = load_workbook(file_path) st = wb.active data1 = Reference(st,max_row=7) chart1 = barChart() chart1.type = "col" chart1.style = 9 chart1.Title = "日均值对比" # chart1.y_axis.Title = '数值' chart1.x_axis.Title = st.cell(column=1,row=1).value chart1.add_data(data1,Titles_from_data=True) chart1.set_categorIEs(cats1) chart1.shape = 0 st.add_chart(chart1,'A8') wb.save(file_path) 绘制3D柱形图 def create_bar_chart_2(file_path): """ 插入3D柱形图 :param file_path: Excel 文件路径 :return: None """ wb = load_workbook(file_path) st = wb.active data1 = Reference(st,max_row=7) chart1 = barChart3D() chart1.type = "bar" chart1.style = 10 chart1.Title = "日均值对比" chart1.x_axis.Title = None chart1.shape = 'cylinder' chart1.add_data(data1,Titles_from_data=True) chart1.set_categorIEs(cats1) st.add_chart(chart1,'A26') wb.save(file_path)

运行结果示例图片

整体图片 - Excel打开



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有