Pyecharts图表交互功能提升

news2025/1/26 11:47:27

在数据可视化中,交互功能可以极大地提升用户体验,让用户能够更加深入地探索数据。Pyecharts 提供了多种强大的交互功能,本篇将重点介绍如何使用缩略轴组件、配置图例交互,让我们的数据可视化作品更加生动有趣。

一、缩略轴组件使用

缩略轴组件可以让用户方便地查看数据的不同部分,尤其当数据量较大时,它可以帮助用户快速定位到感兴趣的数据区域。以下是三种使用不同缩略轴组件的示例。

1. 内置数据缩放组件

from pyecharts.charts import Bar
from pyecharts import options as opts


def bar_datazoom_inside():
    bar = Bar()
    x_data = ['数据点' + str(i) for i in range(100)]
    y_data = [i * 2 for i in range(100)]
    bar.add_xaxis(x_data)
    bar.add_yaxis('数据系列', y_data)
    bar.set_global_opts(
        title_opts=opts.TitleOpts(title='内置数据缩放的柱状图'),
        datazoom_opts=[opts.DataZoomOpts(type_='inside')]  # 使用内置数据缩放组件
    )
    return bar


chart = bar_datazoom_inside()
chart.render_notebook()

在这里插入图片描述

代码解释

  • 导入 Bar 类和 options 模块。
  • 定义 bar_datazoom_inside 函数,创建 Bar 实例。
  • 生成 100 个数据点作为 x 轴和 y 轴数据。
  • 使用 set_global_opts 方法添加 datazoom_opts,并设置 type_='inside' 启用内置数据缩放组件,用户可以通过鼠标滚轮或触摸板手势在图表内部进行缩放操作。

2. 滑块数据缩放组件

from pyecharts.charts import Bar
from pyecharts import options as opts

def bar_with_datazoom_slider():
    bar = Bar()
    x_data = ['数据点' + str(i) for i in range(100)]
    y_data = [i * 2 for i in range(100)]
    bar.add_xaxis(x_data)
    bar.add_yaxis('数据系列', y_data)
    bar.set_global_opts(
        title_opts=opts.TitleOpts(title='带有滑块数据缩放的柱状图'),
        datazoom_opts=[opts.DataZoomOpts(type_='slider')]  # 使用滑块数据缩放组件
    )
    return bar


chart = bar_with_datazoom_slider()
chart.render_notebook()

在这里插入图片描述

代码解释

  • 与上一个函数类似,但 datazoom_optstype_ 设置为 slider,会在图表下方添加一个滑块,用户可以拖动滑块来查看不同的数据范围。

3. 双向数据缩放组件

from pyecharts.charts import Bar
from pyecharts import options as opts


def bar_datazoom_both_way():
    bar = Bar()
    x_data = ['数据点' + str(i) for i in range(100)]
    y_data = [i * 2 for i in range(100)]
    bar.add_xaxis(x_data)
    bar.add_yaxis('数据系列', y_data)
    bar.set_global_opts(
        title_opts=opts.TitleOpts(title='双向数据缩放的柱状图'),
        datazoom_opts=[
            opts.DataZoomOpts(),  # 默认是 slider 类型
            opts.DataZoomOpts(type_='inside')  # 同时使用滑块和内置数据缩放组件
        ]
    )
    return bar


chart = bar_datazoom_both_way()
chart.render_notebook()

在这里插入图片描述

代码解释

  • 同时使用了滑块和内置数据缩放组件,用户可以通过拖动滑块和使用鼠标滚轮或触摸板手势进行缩放操作,方便从不同维度查看数据。

二、图例交互设置

图例交互可以让用户选择显示或隐藏不同的数据系列,以下是两个图例交互的示例。

1. 图例单选

from pyecharts.charts import Bar
from pyecharts import options as opts


def bar_single_selected():
    bar = Bar()
    x_data = ['A', 'B', 'C', 'D', 'E']
    y_data1 = [10, 20, 30, 40, 50]
    y_data2 = [5, 15, 25, 35, 45]
    bar.add_xaxis(x_data)
    bar.add_yaxis('系列 1', y_data1)
    bar.add_yaxis('系列 2', y_data2)
    bar.set_global_opts(
        title_opts=opts.TitleOpts(title='图例单选的柱状图'),
        legend_opts=opts.LegendOpts(
            selected_mode='single'  # 设置图例为单选模式
        )
    )
    return bar


chart = bar_single_selected()
chart.render_notebook()

代码解释

  • 创建 Bar 实例,添加两个数据系列。
  • legend_opts 中设置 selected_mode='single',使用户可以在图例中单选数据系列,即一次只能显示一个数据系列。

2. 默认选中系列

from pyecharts.charts import Bar
from pyecharts import options as opts


def bar_with_default_selected_series():
    bar = Bar()
    x_data = ['A', 'B', 'C', 'D', 'E']
    y_data1 = [10, 20, 30, 40, 50]
    y_data2 = [5, 15, 25, 35, 45]
    bar.add_xaxis(x_data)
    bar.add_yaxis('系列 1', y_data1)
    bar.add_yaxis('系列 2', y_data2)
    bar.set_global_opts(
        title_opts=opts.TitleOpts(title='默认选中系列的柱状图'),
        legend_opts=opts.LegendOpts(
            selected_mode='multiple',  # 可以是 'single' 或 'multiple'
            selected_map={'系列 1': True, '系列 2': False}  # 初始只选中系列 1
        )
    )
    return bar


chart = bar_with_default_selected_series()
chart.render_notebook()

在这里插入图片描述

代码解释

  • 同样创建 Bar 实例和两个数据系列。
  • legend_opts 中使用 selected 字典,指定初始状态下只选中 系列 1,而 系列 2 不显示。

三、总结

通过上述示例,我们可以看到 Pyecharts 提供了丰富的交互功能,包括不同类型的缩略轴组件、图例交互效果。这些功能可以让用户更好地与图表交互,深入探索数据,并且增强数据可视化的视觉体验。在实际应用中,可以根据具体的数据和使用场景,灵活选择和组合这些交互功能,为用户带来更加优质的数据可视化服务。在后续的文章中,我们将继续探索 Pyecharts 的更多高级功能,敬请期待!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2283431.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用layui表单,前端页面的样式正常显示,但是表格内无数据显示(数据库连接和获取数据无问题)——已经解决

这是我遇到的错误 原因:后端控制台的数据格式没有设置清楚 解决:1、加注释 ResponseBody ,确保返回的是json数据。 2、要传三个参数到前端,如下图第二个红色框框所示。因为layui框架代码如果未修改,默认要传入这三个…

单片机基础模块学习——按键

一、按键原理图 当把跳线帽J5放在右侧,属于独立按键模式(BTN模式),放在左侧为矩阵键盘模式(KBD模式) 整体结构是一端接地,一端接控制引脚 之前提到的都是使用了GPIO-准双向口的输出功能&#x…

mybatis是什么?有什么作用?mybatis的简单使用

mybatis是什么? MyBatis 是一个持久层框架。 有什么作用? 简化了对数据库数据的操作。 如何简化数据操作的? MyBatis 通过提供 SQL 映射、动态 SQL、结果映射、事务管理等功能,我们直接去用就可以了。 怎么使用?&…

webpack 打包自己的--windows

第一步安装node 1、安装nodejs:https://nodejs.org/zh-cn/download/releases/ 一、Window系统配置: 打开命令窗口,进入当前工程目录 npm配置淘宝镜像:npm config set registry http://registry.npm.taobao.org/ npm安装parcel-bundler:npm install -g parcel-bund…

微服务学习-Nacos 注册中心实战

1. 注册中心的设计思路 1.1. 微服务为什么会用到注册中心? 服务与服务之间调用需要有服务发现功能;例如订单服务调用库存服务,库存服务如果有多个,订单服务到底调用那个库存服务呢(负载均衡器)&#xff0…

MySQL数据库 - 语法知识

一 数据模型 1 关系型数据库管理系统(RDBMS) 概念:建立在关系模型基础上,有多张相互连接的二维表组成的数据库。 特点: 使用表存储数据,格式统一,便于维护。使用SQL语言操作,标准…

有限元分析学习——Anasys Workbanch第一阶段笔记(15)接触间隙处理与赫兹接触

目录 0 序言 1 接触的间隙处理 1.1 结果对比 1.2 处理方法 2 赫兹接触 0 序言 本章主要介绍间隙出现时的三种解决方法,齿轮点蚀/表面剥落涉及的赫兹接触的一些理论知识。 1 接触的间隙处理 在实际产品过程中,很多时候由于设计问题,原本…

查询本周一到周五的数据

查询sql SELECT CASEWHEN TO_CHAR(T.BEGINDATE, D) 2 THEN 周一WHEN TO_CHAR(T.BEGINDATE, D) 3 THEN 周二WHEN TO_CHAR(T.BEGINDATE, D) 4 THEN 周三WHEN TO_CHAR(T.BEGINDATE, D) 5 THEN 周四WHEN TO_CHAR(T.BEGINDATE, D) 6 THEN 周五END AS DAY_NAME,T.COLUMN1,T.COL…

【Linux】命令为桥,存在为岸,穿越虚拟世界的哲学之道

文章目录 Linux基础入门:探索操作系统的内核与命令一、Linux背景与发展历史1.1 Linux的起源与发展1.2 Linux与Windows的对比 二、Linux的常用命令2.1 ls命令 - "List"(列出文件)2.2 pwd命令 - "Print Working Directory"&#xff08…

2025美赛美国大学生数学建模竞赛A题完整思路分析论文(43页)(含模型、可运行代码和运行结果)

2025美国大学生数学建模竞赛A题完整思路分析论文 目录 摘要 一、问题重述 二、 问题分析 三、模型假设 四、 模型建立与求解 4.1问题1 4.1.1问题1思路分析 4.1.2问题1模型建立 4.1.3问题1样例代码(仅供参考) 4.1.4问题1样例代码运行结果&…

http的请求体各项解析

一、前言 做Java开发的人员都知道,其实我们很多时候不单单在写Java程序。做的各种各样的系统,不管是PC的 还是移动端的,还是为别的系统提供接口。其实都离不开http协议或者https 这些东西。Java作为编程语言,再做业务开发时&#…

深入探究分布式日志系统 Graylog:架构、部署与优化

文章目录 一、Graylog简介二、Graylog原理架构三、日志系统对比四、Graylog部署传统部署MongoDB部署OS或者ES部署Garylog部署容器化部署 五、配置详情六、优化网络和 REST APIMongoDB 七、升级八、监控九、常见问题及处理 一、Graylog简介 Graylog是一个简单易用、功能较全面的…

微信开发者工具的快捷键

微信开发者工具的快捷键 微信开发者工具的所有快捷键

科家多功能美发梳:科技赋能,重塑秀发新生

在繁忙的都市生活中,头皮健康与秀发养护成为了现代人不可忽视的日常课题。近日,科家电动按摩梳以其卓越的性能和创新设计,赢得了广大消费者的青睐。这款集科技与美学于一身的美发梳,不仅搭载了2亿负离子、6000次/分钟的声波振动等前沿技术,更融入了650nm聚能环红光与415nm强劲蓝…

JVM面试题解,垃圾回收之“分代回收理论”剖析

一、什么是分代回收 我们会把堆内存中的对象间隔一段时间做一次GC(即垃圾回收),但是堆内存很大一块,内存布局分为新生代和老年代、其对象的特点不一样,所以回收的策略也应该各不相同 对于“刚出生”的新对象&#xf…

批量修改图片资源的属性。

Unity版本2022.3 如图,比如我们想要修改图片的属性的时候,大部分都是 TextureImporter importer (TextureImporter)AssetImporter.GetAtPath("Assets/1.png"); // 获取文件 importer.xxxxxxx xxxxxxx; // 修改属性到这里没什么问题&#xf…

vim 中粘贴内容时提示: -- (insert) VISUAL --

目录 问题现象:解决方法:问题原因: 问题现象: 使用 vim 打开一个文本文件,切换到编辑模式后,复制内容进行粘贴时有以下提示: 解决方法: 在命令行模式下禁用鼠标支持 :set mouse …

一个功能强大、操作易用的屏幕录制.Net开源工具 草稿箱

推荐一款免费开源的屏幕录制工具,凭借其强大的功能和用户友好的界面,受到非常多人喜欢! 01 项目简介 该工具不仅支持全屏录制,还提供区域录制、游戏录制和摄像头录制等多种模式。不管是录制软件操作、游戏、直播、网络教学、课件…

JAVASE入门十脚-红黑树,比较器,泛型

红黑树Set,ArrayList数组,LinkedList链表 AVL二叉树 红黑树 插入节点一般是红色 treeSet()底层是treeMap,利用红黑树来实现 package ContainerDemo1;import java.util.Objects;public class PersonDemo {private String name;private int age;public PersonDemo(){}public P…

总结8..

#include <stdio.h> // 定义结构体表示二叉树节点&#xff0c;包含左右子节点编号 struct node { int l; int r; } tree[100000]; // 全局变量记录二叉树最大深度&#xff0c;初始为0 int ans 0; // 深度优先搜索函数 // pos: 当前节点在数组中的位置&#xff0c…