pyecharts源码解读(17)HTML组件包components之表格组件Table

pyecharts任意位置添加文字 + 自适应居中 + table表格居中 pyecharts 任意位置添加文字,浏览器自适应+table居中。 阅读详情

当前pyecharts的版本为1.9.0。

components包概述

components包位于pyecharts包顶级目录中,用于定义pyecharts的HTML组件。包结构如下:

├─components # HTML组件包
│  │  image.py # 定义图像组件类Image
│  │  table.py # 定义表格组件类Table
│  │  __init__.py # 重构命名空间,将组件类命名空间提升至components包命名空间

目前HTML组件类Table 和Image 与复合图表类Page不兼容。

Table类

pyecharts/components/table.py模块只定义了表格组件类Table。

Table类继承自基类ChartMixin,作用为绘制表格。功能依赖第三方库prettytable(pyecharts依赖库)。

Table类的签名为class Table(page_title: str = CurrentConfig.PAGE_TITLE, js_host: str = "")。

Table类的构造方法参数如下:

  • js_host:JavaScript库的URL。字符串,默认值为""。
  • page_title:HTML页面标题。字符串,默认值为全局变量CurrentConfig.PAGE_TITLE。

Table类的属性如下:

  • js_host:JavaScript库的URL。字符串,默认值为全局变量CurrentConfig.ONLINE_HOST。属性值为构造方法参数js_host与全局变量CurrentConfig.ONLINE_HOST进行或操作的结果。
  • page_title:HTML页面标题。字符串。值为构造方法参数page_title值。
  • js_functions:自定义JavaScript语句。类型为OrderedSet对象。默认值为OrderedSet()。
  • js_dependencies:定义JavaScript依赖库。类型为OrderedSet对象。默认值为OrderedSet("echarts")。
  • title_opts:表格标题配置。类型为ComponentTitleOpts对象,默认值为ComponentTitleOpts()。标题配置包括title、subtitle、title_style、subtitle_style等4个配置项。
  • html_content:表格的HTML。字符串,默认值为""。
  • _component_type:组件类型。字符串,默认值为"table"。
  • chart_id:组件id。字符串,默认值为uuid.uuid4().hex。

Table类的方法如下:

  • add(self, headers: Sequence, rows: Sequence, attributes: Optional[dict] = None):添加图表数据。
    • headers:图表标题行。类型为序列。
    • rows:图表行数据。类型为序列。
    • attributes:图表样式属性。类型为字典。默认值为None or {"class": "fl-table"}
  • def set_global_opts(title_opts: Union[ComponentTitleOpts, dict, None] = None):将表格对象的title_opts属性值设置为title_opts参数值。
  • render:调用render包engine模块中的render函数渲染HTML文档。默认渲染模板为components.html。
  • render_embed:调用render包engine模块中的render_embed函数输出HTML字符串。默认渲染模板为components.html。
  • render_notebook:调用render包engine模块中的render_notebook函数将输出嵌入到notebook中。默认渲染模板为 nb_components.html。

表格模板

macro部分源码:

{%- macro gen_components_content(chart) %}
    {% if chart._component_type == "table" %}
        <style>
            .fl-table {
                margin: 20px;
                border-radius: 5px;
                font-size: 12px;
                border: none;
                border-collapse: collapse;
                max-width: 100%;
                white-space: nowrap;
                word-break: keep-all;
            }

            .fl-table th {
                text-align: left;
                font-size: 20px;
            }

            .fl-table tr {
                display: table-row;
                vertical-align: inherit;
                border-color: inherit;
            }

            .fl-table tr:hover td {
                background: #00d1b2;
                color: #F8F8F8;
            }

            .fl-table td, .fl-table th {
                border-style: none;
                border-top: 1px solid #dbdbdb;
                border-left: 1px solid #dbdbdb;
                border-bottom: 3px solid #dbdbdb;
                border-right: 1px solid #dbdbdb;
                padding: .5em .55em;
                font-size: 15px;
            }

            .fl-table td {
                border-style: none;
                font-size: 15px;
                vertical-align: center;
                border-bottom: 1px solid #dbdbdb;
                border-left: 1px solid #dbdbdb;
                border-right: 1px solid #dbdbdb;
                height: 30px;
            }

            .fl-table tr:nth-child(even) {
                background: #F8F8F8;
            }
        </style>
        <div id="{{ chart.chart_id }}" class="chart-container" style="">
            <p class="title" {{ chart.title_opts.title_style }}> {{ chart.title_opts.title }}</p>
            <p class="subtitle" {{ chart.title_opts.subtitle_style }}> {{ chart.title_opts.subtitle }}</p>
            {{ chart.html_content }}
        </div>

components.html源码:

{% import 'macro' as macro %}
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>{{ chart.page_title }}</title>
</head>
<body>

{{ macro.gen_components_content(chart) }}

</body>
</html>

简易图表Table案例

from pyecharts.components import Table

table = Table()

headers = ["City name", "Area", "Population", "Annual Rainfall"]
rows = [
    ["Brisbane", 5905, 1857594, 1146.4],
    ["Adelaide", 1295, 1158259, 600.5],
    ["Darwin", 112, 120900, 1714.7],
    ["Hobart", 1357, 205556, 619.5],
    ["Sydney", 2058, 4336374, 1214.8],
    ["Melbourne", 1566, 3806092, 646.9],
    ["Perth", 5386, 1554769, 869.4],
]
attributes={"border":"1px"}

table.add(headers, rows)
table.set_global_opts({"title":"Table-基本示例", 
                       "subtitle":"我是副标题支持换行哦",
                       "title_style":"style='color:red'",
                       "subtitle_style":"style='color:green'"
                      })

table.render()

在这里插入图片描述

pyecharts/components/table.py模块源码

import uuid

from jinja2 import Environment
from prettytable import PrettyTable

from ..charts.mixins import ChartMixin
from ..commons.utils import OrderedSet
from ..globals import CurrentConfig
from ..options import ComponentTitleOpts
from ..render import engine
from ..types import Optional, Sequence, Union


class Table(ChartMixin):
    def __init__(self, page_title: str = CurrentConfig.PAGE_TITLE, js_host: str = ""):
        self.page_title = page_title
        self.js_host = js_host or CurrentConfig.ONLINE_HOST
        self.js_dependencies: OrderedSet = OrderedSet()
        self.js_functions: OrderedSet = OrderedSet()
        self.title_opts: ComponentTitleOpts = ComponentTitleOpts()
        self.html_content: str = ""
        self._component_type: str = "table"
        self.chart_id: str = uuid.uuid4().hex

    def add(self, headers: Sequence, rows: Sequence, attributes: Optional[dict] = None):
        attributes = attributes or {"class": "fl-table"}
        table = PrettyTable(headers, attributes=attributes)
        for r in rows:
            table.add_row(r)
        self.html_content = table.get_html_string()
        return self

    def set_global_opts(self, title_opts: Union[ComponentTitleOpts, dict, None] = None):
        self.title_opts = title_opts
        return self

    def render(
        self,
        path: str = "render.html",
        template_name: str = "components.html",
        env: Optional[Environment] = None,
        **kwargs,
    ) -> str:
        return engine.render(self, path, template_name, env, **kwargs)

    def render_embed(
        self,
        template_name: str = "components.html",
        env: Optional[Environment] = None,
        **kwargs,
    ) -> str:
        return engine.render_embed(self, template_name, env, **kwargs)

    def render_notebook(self):
        # only notebook env need to re-generate chart_id
        self.chart_id = uuid.uuid4().hex
        return engine.render_notebook(self, "nb_components.html", "nb_components.html")
Pyecharts之图表组合与布局优化 在实际应用中,我们可以根据数据的特点和分析需求,灵活选择使用 Tab 组件、Page 组件或 Timeline 组件。Tab 组件适合用户切换查看不同类型的图表,Page 组件适合将多个图表排列在一起展示,而 Timeline 组件则适用于展示数据的时间序列变化。你可以根据需要调整每个图表的样式、数据和颜色,以满足不同的可视化需求。 阅读详情

相关推荐

pyecharts学习小总结——Bar(柱状图)、Pie(饼图)、Line(线图)、Page(页面组件)、Tab(分页组件)、Grid(组合组件)

# pyecharts常用模块总结 文档链接:https://pyecharts.org/#/zh-cn/global_options - Bar(柱状图) - Pie(饼图) - Line(线图) - Page(页面组件) - Tab(分页组件) - Grid(组合组件)

qq_42025868的博客 7172

Python+Pyecharts,快速构建11种常见的数据可视化图表

做一个写出‘有用’代码的人!Echarts 是原百度出品,现已移交Apache开源组织管理,使得其更加强大,那么怎么用呢,下面就用一下最常用的几个图表,几行代码就可以,看就完事了! 首先安装模块:pip install pyecharts ,由于生成的是html页面,所以我在这里引入了一个html转图片的工具imgkit,先下载exe程序,再安装模块:pip install imgkit,如果不需要转图片,可以忽略! 这里使用的是pyecharts自带的演示数据集Faker,choose()随机生成一.

爱程序,爱生活 3285

python可视化图表库

当谈到数据可视化时,Python是一个非常强大的工具。Python有很多可视化库,其中最流行的是 Matplotlib和SeabornDeepl降重。除此之外,还有—些其他的可视化库,如Plotly、Bokeh 和Pyecharts等。在本篇博客中,我们将重点介绍Pyecharts,因为它提供了丰富的图表类型和配置选项,可以帮助我们轻松地创建出好看的数据可视化图表。本篇博客仅供参考,更多的是自己的学习笔记,希望可以对其他人有帮助。Pyecharts提供了很多配置选项,可以帮助我们自定义图像。

阿发狗伪原创 932

pyecharts基础笔记

一、pyecharts 简述 Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。 官网https://pyecharts.org/#/ 1.pyecharts的特点 1.与Echarts结合 2.与Web端结合 3.超强交互性 4.国人开发的项目 2.安装 pyecharts Windows系统: pip instal

weixin_45702895的博客 3788

python pyecharts绘制表格Table和主题河流图ThemeRiver

文章目录table_basetheme_river table_base from pyecharts.components import Table from pyecharts.options import ComponentTitleOpts table = Table() headers = ["City name", "Area", "Population", "Annual Rainfall"] rows = [ ["Brisbane", 5905, 1857594, 1146.4]

Cachel Wood的博客 3571

pyechats 表格属性

def table_base() -> Table: table = Table() headers = ["City name", "Area", "Population", "Annual Rainfall"] rows = [ ["Brisbane", 5905, 1857594, 1146.4], ["Adelaide", 1...

zhaoyangjian724的专栏 1463

用pyecharts绘制图表

pyecharts github项目国内镜像: https://gitee.com/mirrors/pyechart。pyecharts众多图表示例代码:https://gallery.pyecharts.org/#/README。pyecharts官网:https://pyecharts.org/#/zh-cn/intro。echarts官网:https://www.echartsjs.com/index.html。

2301_77034290的博客 321

Python数据可视化 Pyecharts 制作 Tab 选项卡多图控制

大家好,我是Mr数据杨。想象一下,Tab就像三国的战场,各个州郡是不同的选项卡,其中隐藏着无尽的可能。就像那些被划分为蜀、魏、吴的三个国家,每个国家都有自己的特色,自己的英雄和战略。基本设置就像是郭嘉、诸葛亮、周瑜这些军师们制定的战略。每个军师都有自己的智谋和策略,就像Python中各种设置让程序更加完善,从而实现各种功能。而Demo,就好比是三国里的那些决定胜负的关键战役。那些战役,就如同程序中的示例,直观地展现出策略是否有效,程序是否运行成功。

Mr数据杨 4万+

pyecharts 总结(常用图表和组件)

pyecharts常见组件及常见图表的绘制方法

qq_51943014的博客 1288

python的pyecharts绘制各种图表详细(附代码)

主要介绍了python的pyecharts绘制各种图表详细(附代码),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

代码详解——Transformer

对于一个序列,在 time_step 为 t 的时刻,我们的解码输出应该只能依赖于 t 时刻之前的输出,而不能依赖 t 之后的输出。当 Decoder 的输入矩阵和 Mask 矩阵输入矩阵包含 “ I have a cat” (0, 1, 2, 3, 4) 五个单词的表示向量,Mask 是一个 5×5 的矩阵。然后判断是否传入的mask, 如果有mask (mask参数值不为None),则把mask为0的位置,将对应位置的attn的值设为无穷小的负数。可以发现得到的输出和输入的K,Q,V的大小相同。

zyw2002的博客 7216

python数据可视化之Pyecharts库使用

Pyecharts是一个基于 Python 的开源数据可视化库,它提供了一种简单而强大的方式来创建各种交互式图表。Pyecharts 是对流行的 JavaScript 数据可视化库 Echarts 的封装,使得在 Python 中使用 Echarts 变得更加方便和高效。特点和功能。

m0_69704149的博客 1676

AAAI2024最佳解读|FontDiffuser One-Shot Font Generation via Denoising Diffusion with Multi-Scal

本文提出了一种名为FontDiffuser的基于扩散的单次字体生成方法,旨在通过去噪扩散模型生成模仿参考图像风格的字体,同时保留源图像的内容。尽管现有的字体生成方法在性能上取得了一定的进展,但在处理复杂字符和大风格变化时仍面临挑战。FontDiffuser通过引入多尺度内容聚合(MCA)模块,有效结合不同尺度的全局和局部内容线索,从而增强复杂字符的笔画保留能力。此外,文章还提出了一种风格对比细化(SCR)模块,用于风格表示学习,利用风格提取器从图像中分离风格,并通过精心设计的风格对比损失来监督扩散模型。

haimianxiaobao11的博客 1193

05 pyecharts 基本图表(示例代码+效果图)

1 Pie饼图 2 Funnel漏斗图 3 Gauge仪表盘 4 Liquid水球图 5 Calendar日历图 6 Graph关系图 7 Parallel平行坐标系 8 Polar极坐标系 9 Radar雷达图 10 Sunburst旭日图 11 Sankey桑基图 12 ThemeRiver河流图 13 WordCloud词云图 14 Table表格.........

c_lanxiaofang的博客 3023

YOLOv8工业级增强实战:小目标检测与HDR鲁棒性优化

YOLO(You Only Look Once)作为主流实时目标检测框架,其核心价值在于模块化架构与工程可扩展性。理解YOLOv8的Anchor-Free设计、C2f特征融合机制及Detect头部解耦原理,是实现性能突破的基础。在工业落地中,真实瓶颈往往不是模型版本迭代,而是小目标漏检、高动态范围(HDR)场景适应差、密集遮挡ID断裂等具体问题。通过配置层动态多尺度训练、物理感知数据增强、Neck跨尺度注意力注入、质量感知损失函数升级等七层增强策略,可在不更换主干的前提下显著提升mAP与边缘设备推理效率。本

weixin_32667439的博客 259

EBOM转MBOM实战:华为云数字工厂如何5步搞定BOM自动转换(含避坑指南)

本文详细解析了华为云数字工厂平台如何通过五步自动化流程实现EBOM到MBOM的高效转换,涵盖模型预配置、逻辑流编排、工艺属性注入等关键步骤,并提供了多工厂差异化配置、历史数据迁移等典型场景的避坑指南。该方案显著提升转换效率,降低差错率,助力企业实现数字化转型。

weixin_29215391的博客 270

pyecharts各种图表实现(超级全)

目录平面直角坐标系直方图折线图箱形图散点图带涟漪效果散点图k线图热力图象型图层叠图地理图表GEO-地理坐标系MAP-地图BMAP-百度地图基本图表饼图漏斗图仪表盘水球图日历图关系图平行坐标系极坐标系雷达图旭日图桑基图河流图词云图表格3D图表3D散点图3D折线图3D直方图3D地图树型图表树图矩形树图 以下默认都是在Jupyter Notebook展示 也可以将每个图代码的最后一行换为 所创建的对象.render('名字.html')转换为html文件就可以查看啦 平面直角坐标系 直方图 x_data = ['

hyk的博客 5378

智能座舱架构与芯片 - (3) 硬件篇 上

在了解智能座舱的基本架构之后,我们有必要针对智能座舱域的硬件平台,软件平台,SOC等进行逐一介绍。从它们的整体结构中去认识最新的智能座舱组成部件,以及主要功能等。如上图,是中央计算-区域控制架构下的智能座舱硬件平台框架图,其中,智能座舱控制器CDC挂载在以太网交换机上,与其他车控域VDC,自驾域ADC,网联设备5G+V2X等通过以太网实现数据交互。而智能座舱域的外部硬件设备还包含有连接子系统音频子系统摄像头子系统显示子系统存储子系统功能安全子系统等。

joanna_xiao的博客 2405

python3使用pyecharts绘制excel表格内数据图表

前序 这次在工作中需要对一个excel表格的数据进行可视化显示,但是数据有些不规则以及空白内容,所以做了一点简单的处理,利用python的pyecharts模块进行绘图并保存为html格式 上代码! import xlrd import re from pyecharts import Bar,Pie#直方图/饼状图 data = xlrd.open_workbook("xywy.xlsx")#打开文件 table = data.sheets()[0]#取第一个sheet print(table.nrow

weixin_43882507的博客 7959

手机移动端-纯js浏览器h5调用摄像头扫描识别解析 条形码+二维码

一、场景 h5原生js 浏览器端解决识别二维码条形码功能; 不借助Hbuilder.需要自己打包成APP,比如用Hbuilder打包,浏览器端项目h5无打包成app部署X不采用 不借助微信扫一扫,调用微信js-jdk有多麻烦,还要认证服务号,也不适用其它浏览器打开X不采用 二、思路 1.思路一:input(相机拍照)+条形码或二维码识别js支持库 通过h5-input[camera]调用相机进行拍照成图片,通过条形码等识别库解析出数据; <input @cha...

徐子厚的博客 3万+

【RT-DETR多模态融合改进】| 自研 多模态大核选择模块:MM_LSK,适配多模态图像信息融合

本文记录的利用改进的多模态大核选择模块(MM-LSK)优化RT-DETR,构建可见光-红外双模态目标检测网络。在遥感等大尺寸图像的可见光-红外双模态小目标检测任务中,单模态检测易受光照、云雾、背景干扰等因素影响,且小目标外观信息匮乏,无法仅基于单模态外观实现较好的识别,因此需要融合双模态互补特性与广泛的跨模态上下文信息进行辅助。

Limiiiing的博客 382

【Pyechart 经典并行多图】pyechart实现看板案例

【Pyechart 经典并行多图】pyechart实现看板案例, 短小但是非常精巧, 适合练习

licn188的博客 1052

有之以为利,无之以为用,在 RAP 开发里的虚实取舍

摘要(149字) SAP RAP框架通过"有"与"无"的哲学平衡实现业务应用价值。其"有"体现在CDS视图、行为定义、服务绑定等具体对象,为系统提供形体;而"无"则表现为保留的扩展空间、未暴露的实现细节和框架托管的生命周期。在采购审批应用中,RAP既通过明确定义的行为模型建立业务语义,又通过验证、动作等机制保持灵活性。这种架构既确保核心功能稳固,又为未来演进留出余地,印证了"有之以为利,无之以为用"的技术智慧

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1306

pyechast绘制多图案例,并介绍相关图表的使用

帮助想要绘制图表的小伙伴更好了解pyechast

qq_60483918的博客 3646

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

彻底解决PyEcharts Table组件配置失效难题

你是否在使用PyEcharts的Table组件时遇到配置不生效的问题?表格样式错乱、标题不显示或自定义属性无效?本文将从源码层面深度解析3大核心失效原因,并提供经过测试的解决方案,让你10分钟内解决所有Table配置难题。读完本文你将掌握: - 快速定位配置失效的3种调试方法 - Table组件与全局配置的兼容性处理技巧 - 官方测试用例中的隐藏解决方案 ## 问题现象与影响范围 Table组...

gitblog_00076的博客 468

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

flask+Pyecharts+ajax实现分tab页展示多图

利用flask+pyecharts+ajax 技术完成一次查询,返回多图,并分页签tab显示

zhyuli的博客 1244
上一篇: pyecharts源码解读(16)图表类包charts之组合图表: 顺序多图Page
下一篇: pyecharts源码解读(18)HTML组件包components之图像组件Image
mighty13
博客等级 码龄23年 728粉丝 438原创
评论 13
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值