pyecharts源码解读(15)图表类包charts之组合图表: 选项卡Tab

当前pyecharts的版本为1.9.0。

概述

pyecharts/charts/composite_charts/包中的四个模块分别定义了组合图表类,其中pyecharts/charts/composite_charts/tab.py模块只定义了选项卡类Tab

Tab类继承自图表基类CompositeMixin,作用为利用选项卡(tab)控制多个图表的展示。输出的HTML结构如下:
创建一个选项div,每个图表对应一个按钮, 用于切换显示图表。
创建一个图表div,每个图表构造一个单独的div,作为图表容器,每个图表创建一个ECharts实例绘图。
在这里插入图片描述

Tab类的签名为class Tab(page_title: str = "Awesome-pyecharts", js_host: str = "")

Tab类的属性如下:

  • js_host:JavaScript库的URL。字符串,默认值为全局变量CurrentConfig.ONLINE_HOST。属性值为构造方法参数js_host与全局变量CurrentConfig.ONLINE_HOST进行或操作的结果。
  • page_title:页面标题。字符串,默认值为全局变量CurrentConfig.PAGE_TITLE
  • download_button:是否显示下载按钮。布尔值。默认值为False
  • js_functions:自定义JavaScript语句。类型为OrderedSet对象。默认值为OrderedSet()
  • js_dependencies:定义JavaScript依赖库。类型为OrderedSet对象。默认值为OrderedSet("echarts")
  • _charts:容器中图表实例列表。类型为列表。默认值为[]

Tab类的方法如下:

  • add(chart,tab_name):将图表类实例添加到选项卡中。chart参数为图表类实例,参数值将被添加到_charts属性中;tab_name参数为选项卡名称,将会为图表类实例添加tab_name属性。
  • render:调用renderengine模块中的render函数渲染HTML文档。默认渲染模板为"simple_tab.html"
  • render_embed:调用renderengine模块中的render_embed函数输出HTML字符串。默认渲染模板为"simple_tab.html"
  • render_notebook:调用renderengine模块中的render_notebook函数将输出嵌入到notebook中。默认渲染模板为 "nb_jupyter_notebook_tab.html""nb_jupyter_lab_tab.html"

简易选项卡tab案例

from pyecharts.charts import Line, Tab

a = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
b1 = [5, 20, 36
<think>好的,我现在需要处理用户关于PyEcharts创建组合图表选项卡多图)的查询。首先,用户已经提到了他们之前的问题和引用内容,所以我得回顾之前的引用信息,确保回答符合他们的需求。 根据用户提供的引用[1]和[2],里面提到了使用Grid、Tab、Page来组合图表,特别是Tab用于选项卡多图。引用中还提到了InitOpts的配置,以及如何添加系列数据。用户现在需要具体的示例或教程,所以我的回答需要含代码示例和步骤说明。 接下来,我需要确认用户可能需要的细节。比如,如何导入必要的模块,如何创建单个图表,以及如何将这些图表组合Tab组件中。同时,用户可能关心如何设置选项卡的样式和交互功能,比如切换效果或标题位置。 另外,用户之前的引用提到了设置图表宽度、高度、背景颜色等,所以示例中应该含这些配置,以保持一致性。还需要注意代码的结构,确保各部分清晰,比如先创建各个图表对象,再将它们添加到Tab中。 可能还需要解释每个步骤的作用,比如使用Page()Tab()的区别,或者如何为每个选项卡添加不同的图表。用户可能对如何动态加载数据或处理多个数据集感兴趣,但根据当前问题,重点应放在选项卡的基本实现上。 最后,生成相关问题需要考虑用户可能进一步的需求,比如样式自定义、事件处理或与其他图表类型的组合。确保问题覆盖常见的使用场景,帮助用户深入学习。</think>以下是如何使用PyEcharts创建选项卡多图(Tab组件)的详细步骤和示例: ### 一、Tab组件基础用法 1. **导入必要模块** ```python from pyecharts.charts import Bar, Line, Tab from pyecharts import options as opts ``` 2. **创建独立图表** ```python # 柱状图 bar = ( Bar(init_opts=opts.InitOpts(width="800px", height="400px", bg_color="#F5F5F5")) .add_xaxis(["衬衫", "毛衣", "领带", "裤子", "风衣", "高跟鞋"]) .add_yaxis("商家A", [114, 55, 27, 101, 125, 27]) .set_global_opts(title_opts=opts.TitleOpts(title="商品销售柱状图")) ) # 折线图 line = ( Line() .add_xaxis(["周一","周二","周三","周四","周五"]) .add_yaxis("访问量", [120, 132, 101, 134, 90]) .set_global_opts(title_opts=opts.TitleOpts(title="周访问趋势")) ) ``` 3. **组合选项卡** ```python tab = Tab() tab.add(bar, "商品销售") tab.add(line, "趋势分析") tab.render("tab_demo.html") # 生成HTML文件 ``` ### 二、高级配置技巧 1. **设置选项卡样式** ```python tab = Tab(init_opts=opts.InitOpts( page_title="销售数据看板", bg_color="#FFFFFF" )) tab.add(bar, "商品销售", opts.TabItemOpts( background_color="rgba(0,0,255,0.3)", selected_background_color="blue")) ``` 2. **嵌套复杂图表** ```python from pyecharts.charts import Pie # 饼图示例 pie = ( Pie() .add("", [("衬衫",114), ("毛衣",55), ("领带",27)]) .set_global_opts(title_opts=opts.TitleOpts(title="品类占比")) ) tab.add(pie, "品类分析") ``` 3. **添加JavaScript交互** ```python tab.add_js_funcs(""" // 切换选项卡时触发 myChart.on('tabchange', function(params) { console.log('切换到: ' + params.name); }); """) ``` [^1][^2]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值