当前位置:   article > 正文

Python绘制表格

python绘制表格

Python的Plotly模块可以实现绘制表格。Plotly是基于JavaScript的Python封装,它可以为很多编程语言提供接口。而交互式、美观、使用方便也成为了Plotly最大的优势。Plotly是一个单独的绘图库,与Matplotlib绘图库、Seaborn绘图库并没有什么关系,它有自己独特的绘图语法、绘图参数和绘图原理,与Python中Matplotlib、NumPy、和Pandas等库可以做到无缝连接。
Plotly支持绘制表格,而且绘图效果非常美观。在Plotly中,绘制表格有两种方法,Table()函数和create_table()函数。

Table()函数

在Plotly中,使用go.Table()函数可以实现绘制表格。下面介绍两个主要的参数header和cells。

  • header:表格的表头,包括如下设置项:
  • values:列表,表头的文本内容;
  • format:设置单元格值格式规则,类似坐标轴的格式化参数tickformat;
  • prefix:单元格值的前缀;
  • suffix:单元格值的后缀;
  • height:单元格的高度,默认值为28;
  • align:字符串、字符串组成的列表,设置表格内“文本”的水平对齐方式,包括left、center、right,默认值为center。
  • line:设置边框的宽度和颜色,包括两个子参数width和color。
  • fill:设置单元格填充颜色,默认值为white,它接受特定颜色或颜色数组或2D颜色数组。常用的颜色:darkslategray、lightskyblue、lightcyan、paleturquoise、lavender、royalblue、paleturquoise、white、grey、lightgrey。
  • font:设置表头的文字格式,包括字体、大小、颜色。
  • cells:表格内容的单元格值,设置项与header参数基本一致。

举例1:绘制学生成绩表
下面使用go.Table()函数绘制学生成绩表,程序代码如下。

import plotly as py
import plotly.graph_objects as go
# 创建表格数据
trace=go.Table(header=dict(values=['姓名','语文','数学','英语'],
                           line_color="black", # 表头线条颜色
                           fill_color="#44cef6",  # 表头填充色
                           align="center"),             # 文本居中
               cells=dict(values=[['甲','乙','丙'],    # 第1列数据
                                  [105,88,120],        # 第2列数据
                                  [99,115,130],        # 第3列数据
                                  [130,108,110]],      # 第4列数据
                          line_color = "black", # 表格线条颜色
                          fill_color = "#70f3ff",  # 表格填充色
                          align = "center"))            # 文本居中
# 将图轨转换为列表
data=[trace]
layout=go.Layout(width=600,height=500)
# 将图轨和图层合并
fig = go.Figure(data=data, layout=layout)
py.offline.plot(fig)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

运行程序,自动生成HTML网页表格,效果如图1所示。
在这里插入图片描述
举例2:将Excel数据绘制成网页表格
首先通过Pandas读取Excel文件中的数据,然后使用go.Table()函数将DataFrame数据直接绘制成表格,并且数据较多的情况下,自动显示滚动条,程序代码如下。

import plotly as py
import plotly.graph_objects as go
import pandas as pd
# 读取Excel文件
df=pd.read_excel('../../datas/data3.xlsx')
# 输出数据
print(df)
# 创建表格数据
trace=go.Table(header=dict(values=list(df.columns),
                           line_color="black", # 表头线条颜色
                           fill_color="#44cef6",  # 表头填充色
                           align="center"),             # 文本居中
               # 加载DataFrame对象的数据
               cells=dict(values=[df.商品名称,df.浏览量,df.访客数,df.人均浏览量,df.平均停留时长,df.成交商品件数,df.加购人数],   
                          line_color = "black", # 表格线条颜色
                          fill_color = "#70f3ff",  # 表格填充色
                          align = "center"))            # 文本居中
# 将图轨转换为列表
data=[trace]
layout=go.Layout(width=1000,height=500)
# 将图轨和图层合并
fig = go.Figure(data=data, layout=layout)
py.offline.plot(fig)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

运行程序,自动生成HTML网页表格,数据较多的情况下自动显示滚动条,效果如图2所示。
在这里插入图片描述

create_table()函数

在Plotly中,使用plotly.figure_factory的create_table()函数也可以实现绘制表格。下面介绍几个主要的参数。

  • table_text:表格数据,通常是一个DataFrame类型数据。
  • index:布尔型,默认值False,设置是否显示索引列。
  • index_title:字符串,默认值为空,当index=True时,设置索引列的列名。
  • colorscale:列表,设置背景填充颜色,默认为[[0, ‘#66b2ff’], [.5, ‘#d9d9d9’], [1, ‘#ffffff’]]。第一个元素为0的子列表,用于设置第一行(即表头)和有索引时的第一列的背景填充颜色;第一个元素为0.5的子列表,用于设置表格内容中奇数行的背景填充颜色;第一个元素为1的子列表,用于设置表格内容中偶数行的背景填充颜色。
  • font_colors:单个或多个元素组成的列表,设置字体颜色,默认为[‘#000000’]。三个元素时,分别设置表头、奇数行、偶数行的字体颜色,也可以实现为每行设置不同的字体颜色。

举例3:将DataFrame数据生成表格
下面使用create_table()函数将DataFrame数据生成表格,程序代码如下。

import plotly as py
import plotly.figure_factory as ff
import pandas as pd
# 读取Excel文件
df=pd.read_excel('../../datas/data3.xlsx')
# 输出数据
print(df)
# 将DataFrame数据生成表格
fig=ff.create_table(df)
py.offline.plot(fig)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

运行程序,自动生成HTML网页表格,效果如图3所示。
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/980547
推荐阅读
相关标签
  

闽ICP备14008679号