开发工具,环境

  • PyCharm
  • Python3
  • Office Excel

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

柱形图 BarChart

我们主要使用BarChartBarChart3D类。
图表中许多的细节由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

绘制2D柱形图

def create_bar_chart_1(file_path):"""插入柱形图:param file_path: Excel 文件路径:return: None"""wb = load_workbook(file_path)st = wb.activedata1 = 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)chart1 = BarChart()chart1.type = "col"chart1.style = 9chart1.title = "日均值对比"# chart1.y_axis.title = '数值'chart1.x_axis.title = st.cell(column=1, row=1).valuechart1.add_data(data1, titles_from_data=True)chart1.set_categories(cats1)chart1.shape = 0st.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.activedata1 = 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)chart1 = BarChart3D()chart1.type = "bar"chart1.style = 10chart1.title = "日均值对比"chart1.x_axis.title = Nonechart1.shape = 'cylinder'chart1.add_data(data1, titles_from_data=True)chart1.set_categories(cats1)st.add_chart(chart1, 'A26')wb.save(file_path)

运行结果示例图片

学习更过python技能和知识可以查看下面:

抓包必备技能--Fiddler工具详解全网最细

excel python 形状_何使用Python操作Excel绘制柱形图相关推荐

  1. java 操作excel的类_探究下Java操作Excel的几类工具

    引言 java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI ...

  2. 包无法安装_详细教程 | 安装Python编程环境以及使用OpenpyXl操作Excel

    详细教程 | 安装Python编程环境以及使用OpenpyXl操作Excel 注意:下列教程为 Windows7 64位:Windows 10有部分步骤有差异,请参考使用! 01 下载Python程序 ...

  3. python调用百度OCR识别证件+操作excel表格

    python调用百度OCR识别证件+操作excel表格 如果要操作文件的话最好让程序知道文件存不存在,因为做了GUI界面,报错不会直接弹出来,异常捕获就用得比较频繁 因为面向对象没学好,GUI是用工具 ...

  4. wps python 自动化_请教下 Python 高手,如何用 Python 自动化操作 Excel?

    最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!! 但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么而利用 ...

  5. python 获取excel文本框_如何基于python操作excel并获取内容

    这篇文章主要介绍了如何基于python操作excel并获取内容,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 背景:从excel表中获取请求url. ...

  6. python xlrd使用_python使用xlrd 操作Excel读写

    原博文 2016-07-12 15:00 − 此文章非本人 一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了pyt ...

  7. python对excel数据统计_数据分析EPHS(4)-使用Excel和Python计算数列统计值

    前面环境都搞的差不多了,这次咱们进入实战篇,来计算一列的统计值.统计值主要有最大值.最小值.均值.标准差.中位数.四分位数.话不多说,直接进入正题. 本文介绍使用Excel和Python来计算上述统计 ...

  8. python在excel中数据画线_python中操作excel数据

    python操作excel,python有提供库 本文介绍openpyxl,他只支持新型的excell( xlsx)格式,读取速度还可以 1.安装 pip install openpyxl 2.使用 ...

  9. python使用tkinter库,封装操作excel为GUI程序

    首先是完整程序 import xlwings as xws # 操作excel库 import tkinter as tk # Gui库 import random # 随机数def create() ...

最新文章

  1. 深入“肠-脑”神经高速通道,揭开“第六感觉”面纱
  2. PHP实现http与https转化[转张宴]
  3. vim上次和下次光标位置
  4. FreeMarker template error: The following has evaluated to null or missing
  5. Linux 探索之旅 | 第五部分第五课:循环往复,Shell 开路
  6. Jaspersoft Studio:整合springboot搭建环境
  7. python为什么虚部是j不是i_Python基础02 基本数据类型
  8. Elastic Stack简介
  9. LeetCode 557. 反转字符串中的单词 III(栈)
  10. Java并发编程实战笔记
  11. github无法显示图片,其他一切正常的解决办法
  12. windows下ch340 usb转串口芯片的驱动从哪里下载?
  13. 《快学Scala》第6章 对象 练习
  14. html如何调用function,请问HTML function函数怎么定义和调用?
  15. 斐讯dns劫持,路由器DNS被劫持的解决办法
  16. linux最新bbr加速,CentOS 7.8 安装BBR加速
  17. Excel聚光灯--双箭头指示
  18. crm管理系统是什么意思 crm系统全称是什么 - whale帷幄
  19. CRMEB 商城分销功能
  20. 如何改变alert的默认样式

热门文章

  1. pytorch什么要设计ModuleList
  2. scrapy下载中间件设置代理和useraget大全
  3. 三安光电圈钱凶猛 两年三轮再融资逾百亿
  4. 快应用quickapp快速入门教程 by五个半柠檬2
  5. mysql主从状态异常解决办法
  6. IDEA控制台输出乱码解决方案
  7. UVA 1471 Defense Lines 防线 (LIS变形)
  8. [To be translated] Nova:libvirt image 的生命周期
  9. MongoDB[mark]总忘记它们是干啥的
  10. ORACLE查看当前连接用户的权限信息或者角色信息