pyechart绘制多图(三图及以上)的overlap叠加

news2024/9/30 1:30:49

pyechart github页面:https://github.com/pyecharts/pyecharts

首先要明确多图叠加到一个图的规则,即多个图只能有一个公共的轴:

  • 比如,横坐标含义相同(如时间维度)
  • 或者,纵坐标取值含义相同

文章目录

  • 多图共用一个Y轴
  • 多图用多个Y轴
    • 示例1:图1单独用一个Y轴,图2、3合并用另一个Y轴
    • 示例1:图1单独用一个Y轴,图2用第二个Y轴,图3用第三个Y轴

多图共用一个Y轴

我们就以最简单的线条为例,只把最关键的代码写出来:

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Line
import numpy as np

x_dt = pd.date_range("2023-01-01", "2023-02-01").strftime("%Y-%m-%d").tolist()  # X轴的坐标时间
y1 = np.random.random(size=len(x_dt)) * 2
y2 = np.random.random(size=len(x_dt)) * 5
y3 = np.random.random(size=len(x_dt)) * 10

# 绘制y1
line_base = Line().add_xaxis(x_dt).add_yaxis("Y1", y1, yaxis_index=0)
line_base.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
# 绘制y2
line_2 = Line().add_xaxis(x_dt).add_yaxis("Y2", y2, yaxis_index=0)
line_2.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
# 绘制y3
line_3 = Line().add_xaxis(x_dt).add_yaxis("Y3", y3, yaxis_index=0)
line_3.set_series_opts(label_opts=opts.LabelOpts(is_show=False))

# 选中一个图,然后把其他的都overlap到这个图上
line_base.overlap(line_2)
line_base.overlap(line_3)

# 保存
line_base.render("many_line_overlap.html")

上述代码的效果如下:

在这里插入图片描述

多图用多个Y轴

通用流程是:

  1. 第一个图正常画
  2. 第一个图使用extend_axis()方法新添加一个轴,使用多次extend_axis()代表添加多个轴,多出来的这个轴可以作为另一个图不同值域的轴
  3. 第二个图使用yaxis_index属性把定义的y轴映射到第一个图新添加的轴上
  4. 使用图1.overlap(图2),将其变为一个图

示例1:图1单独用一个Y轴,图2、3合并用另一个Y轴

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Line
import numpy as np
from pyecharts import options as opt

x_dt = pd.date_range("2023-01-01", "2023-02-01").strftime("%Y-%m-%d").tolist()  # X轴的坐标时间
y1 = np.random.random(size=len(x_dt)) * 2
y2 = np.random.random(size=len(x_dt)) * 5
y3 = np.random.random(size=len(x_dt)) * 10

# 绘制y1
line_base = Line().add_xaxis(x_dt).add_yaxis("Y1", y1, yaxis_index=0)
line_base.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
line_base.extend_axis(yaxis=opt.AxisOpts(type_="value", name="y2、y3轴", position="right"), )

# 绘制y2
line_2 = Line().add_xaxis(x_dt).add_yaxis("Y2", y2, yaxis_index=1)
line_2.set_series_opts(label_opts=opts.LabelOpts(is_show=False))

# 绘制y3
line_3 = Line().add_xaxis(x_dt).add_yaxis("Y3", y3, yaxis_index=1)
line_3.set_series_opts(label_opts=opts.LabelOpts(is_show=False))

# 选中一个图,然后把其他的都overlap到这个图上
line_base.overlap(line_2)
line_base.overlap(line_3)

# 保存
line_base.render("many_line_overlap.html")

如上代码效果如下:
在这里插入图片描述

示例1:图1单独用一个Y轴,图2用第二个Y轴,图3用第三个Y轴

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Line
import numpy as np
from pyecharts import options as opt

x_dt = pd.date_range("2023-01-01", "2023-02-01").strftime("%Y-%m-%d").tolist()  # X轴的坐标时间
y1 = np.random.random(size=len(x_dt)) * 2
y2 = np.random.random(size=len(x_dt)) * 5
y3 = np.random.random(size=len(x_dt)) * 10

# 绘制y1
line_base = Line().add_xaxis(x_dt).add_yaxis("Y1", y1, yaxis_index=0)
line_base.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
line_base.extend_axis(yaxis=opt.AxisOpts(type_="value", name="y2专用轴", position="right"), ) # 这是额外添加的第一个轴
line_base.extend_axis(yaxis=opt.AxisOpts(type_="value", name="y3专用轴", position="right", offset=60), ) # 这是额外添加的第二个轴

# 绘制y2
line_2 = Line().add_xaxis(x_dt).add_yaxis("Y2", y2, yaxis_index=1)
line_2.set_series_opts(label_opts=opts.LabelOpts(is_show=False))

# 绘制y3
line_3 = Line().add_xaxis(x_dt).add_yaxis("Y3", y3, yaxis_index=2)
line_3.set_series_opts(label_opts=opts.LabelOpts(is_show=False))

# 选中一个图,然后把其他的都overlap到这个图上
line_base.overlap(line_2)
line_base.overlap(line_3)

# 保存
line_base.render("many_line_overlap.html")

在这里插入图片描述

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

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

相关文章

Web3中文|把Web3装进口袋,Solana手机Saga有何魔力?

2月23日,Solana Web3手机Saga发布新的消息,将推出NFT铸造应用程序Minty Fresh。在Minty Fresh,用户仅需轻点并完成拍摄,就可以直接在手机中进行NFT铸造,并在几秒钟内将其转换为链上NFT,NFT还可以发布在 Ins…

STM32学习笔记-SPI

文章目录硬件连接协议层STM32-SPISTM32 SPI框架图SPI初始化结构体SPI 协议是由摩托罗拉公司提出的通讯协议 (Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在 ADC、LCD 等设备与 MCU 间,要求…

NCRE计算机等级考试Python真题(十一)

第十一套试题1、以下选项对于import保留字描述错误的是:A.import可以用于导入函数库或者库中的函数B.可以使用from jieba import lcut 引入 jieba库C.使用import jieba as jb,引入函数库jieba,取别名jbD.使用import jieba 引入jieba库正确答案…

明明硬件比软件难,但为什么硬件工程师待遇还不如软件?

前言 大家好,最近在知乎上看到一个很有意思的问题: 硬件明明比软件更难,国内的硬件技术也不如软件,为什么硬件工程师待遇还不如软件? 下面分享几位网友的回答,有一定的参考价值,欢迎大家留言讨论…

Dell服务器组Raid + 重装Ubuntu20.0.4

文章目录1. 组建Raid2. 从U盘启动3. 系统安装4. 硬盘分区查看5.后续步骤:1. 组建Raid 1.1. 开机后按CtrlR进入Raid管理界面; 1.2. 选中现有群组后按F2弹出菜单,选择删除现有群组; 1.3. 删除后会列出所有磁盘,仍选…

DSP_TMS320F28377D_ePWM学习笔记

前言 本人需要使用ePWM来控制一个永磁同步电机(PMSM), 本文记录了对于TMS320F28377D ePWM模块的学习笔记。主要内容是FOC PMSM控制的ePWM配置,同时包含ADC触发源的配置,关于ADC的学习笔记,请参考DSP_TMS320F28377D_AD…

靶机漏洞那些事儿,这场直播算是讲明白了

CSDN直播间: 小白如何从靶场过渡到实战 ——「业务安全大讲堂第第二季第2期」https://live.csdn.net/room/dingxiangtech/xldogSXD 一名合格的网安工程师,不仅要懂得防漏洞,更要学会找漏洞。 上期直播我们为大家讲解了红队打点与情报收集策…

[busybox] busybox生成一个最精简rootfs(上)

这篇文章是承接着[rootfs]用busybox做一个rootfs(根文件系统)来的,再回看这篇我很久之前写的文章的时候,有一个问题出现在我的脑海中,创建了这个文件那个文件,但确实是每个文件都是必需的吗? 这篇文章我们就来讨论下这…

Graph Neural Network(GNN)图神经网络

Graph Neural Network(GNN)图神经网络,是一种旨在对图结构数据就行操作的深度学习算法。它可以很自然地表示现实世界中的很多问题,包括社交网络,分子结构和交通网络等。GNN旨在处理此类图结构数据,并对图中的节点和边进行预测或执…

PLECS中DLL模块的使用

之前发布了一篇文章,介绍如何使用PSIM中的DLL模块。而本篇文章的内容与之类似,不过主角换成了PLECS。 PLECS和PSIM类似,也属于电力电子仿真软件,使用方便,仿真速度快,和Matlab也有一定的联系,有…

关于Java多线程你了解多少

🏡个人主页 : 守夜人st 🚀系列专栏:Java …持续更新中敬请关注… 🙉博主简介:软件工程专业,在校学生,写博客是为了总结回顾一些所学知识点 目录多线程多线程的创建继承Thread类实现R…

主板EC程序烧写异常致无法点亮修复经验

主板型号:Gigabyte AB350M-Gaming3 官网上明确写着支持R5 5500,但按照如下步骤实践下来实际是不支持的 升级biosF31到F40版本的注意事项: 步骤: 1 使用Q-Flash先将bios升级到f31版本;2 然后下载提示中的ECFW Update To…

常见排序算法——冒泡排序和选择排序

常用算法 一、排序算法 1.1、冒泡排序 冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部…

Fiddler 模拟弱网环境测试

为什么要进行弱网环境测试? 由于用户自身的网络环境波动,或者是本身网络环境就较为恶劣,导致会出现一些意想不到的非功能性bug,影响用户体检。比如 利用Fiddler,Charles等具有代理服务器功能的网络流量分析软件来实现…

操作留痕功能实现与探讨

操作留痕功能实现与探讨 背景 接手了一个单体应用项目,看系统介绍,说实现了【高性能的操作日志留痕】功能,就有点好奇它是怎么设计的,是阻塞队列还是怎样的线程池。结果我打开代码一看,真的是笑洗个人了。它是做了一…

Mysql全解[基础篇]

目录MySQL概述数据库相关概念MySQL数据库版本docker部署单机节点sqlmode说明连接mysql数据模型关系型数据库(RDBMS)数据模型mysql版本对比MySQL 5.5MySQL 5.6MySQL 5.7MySQL 8.0SQLSQL通用语法SQL分类DDL数据库操作表操作数据类型数值类型字符串类型日期…

操作系统——12.处理机调度的概念、层次

这篇文章我们来讲一下处理机调度的概念和层次 目录 1.概述 2.调度的基本概念 3.调度的三个层次 3.1高级调度 3.2中级调度 3.3.低级调度 3.4三种调度的对比 4.挂起状态与七状态模型 5.小结 1.概述 首先,我们来看一下本节的知识框架图: 2.调度的…

连接Oracle数据库失败(ORA-12514)故障排除

文章目录症状产生原因解决办法欢迎加下方我的微信👇,拉你入学习群点击试看博主的专著《MySQL 8.0运维与优化》(清华大学出版社)ORA-12514的故障是很多新手在连接Oracle数据库时经常遇到故障,它通常表示无法连接到数据库…

python+pytest接口自动化框架(5)-requests发送post请求

在HTTP协议中,与get请求把请求参数直接放在url中不同,post请求的请求数据需通过消息主体(request body)中传递。且协议中并没有规定post请求的请求数据必须使用什么样的编码方式,所以其请求数据可以有不同的编码方式,服务端通过请…

专访阮健丨压力就是动力,危机也是转机

48岁的阮健加入酷雷曼已经三个年头,从最初的孤身一人至今,他已经拥有了一个五六人的VR全景团队。 阮健团队的拍摄设备 “人的一生真的是充满不确定性的,那些年我辗转好几个行业的时候,也会一边抱怨行业不景气一边又想着怎么多干点…