1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > python做excel表格柱状图制作_PythonExcel绘制柱形图

python做excel表格柱状图制作_PythonExcel绘制柱形图

时间:2023-05-16 21:19:37

相关推荐

python做excel表格柱状图制作_PythonExcel绘制柱形图

Apple iPhone 11 (A2223) 128GB 黑色 移动联通电信4G手机 双卡双待

4999元包邮

去购买 >

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

相关代码请参考 /RustFisher/python-playground

本文链接://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

绘制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, 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 = 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, 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 = 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)

运行结果示例图片

原文链接:/rustfisher/p/11892824.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。