用pyecharts的overlap绘制叠加图时,设置的颜色不起作用

news2025/4/21 2:55:38

问题

用pyecharts绘制叠加图时,如折线图上叠加散点图时,分别设置了自己的颜色(三角是绿色,圆形是蓝色),但是渲染颜色和图例颜色不一致,如下图所示,折线颜色和散点颜色相同。
在这里插入图片描述

解决1

这种情况,可以在折线图绘制时,在add_yaxis中增加linestyle_opts=opts.LineStyleOpts(color=‘red’)参数来设置折线颜色,结果如下图所示
在这里插入图片描述

解决2

但是如果叠加的图有点多,比如叠加了两种散点图,就无法区别两种散点图了,如下图:
在这里插入图片描述
该图为了方便查看,用不同的符号形状来区分了两种散点图,但是他们的颜色是一样的。究其原因是因为叠加用overlap将多个图放在一个图像上显示,并且在最底图层上增加了全局的可视映射visualmap_opts=opts.VisualMapOpts(is_show=True)。如上图是将两个散点图加到了折线图上,在绘制折线图时设置了该参数,即便该参数中的is_show=False,也会出现上述的结果,只是少了上图左下角的色标。所以简单粗暴一些,直接删除。结果如下图:
在这里插入图片描述
上图也和我们想要的结果不一致(最初设置的三角是绿色,圆形是蓝色的),图中三角是蓝色,圆形的颜色是自动新加的颜色。仔细看图标会发现,第一个折线的图例是一条线加一个圆圈,但是圆圈是绿色的,这正是我们给三角设置的颜色,这是因为在绘制折线时默认每个点用圆圈来标记,为了好看,我们在绘制折线图时将这个圆圈设置不显示(is_symbol_show=False),但是它有颜色的,它是设置颜色中的倒数第三位(echarts机制,默认几个颜色,之后设置的颜色都加到最后面),所以在绘制折线图时将该圆圈的颜色设置为和线的颜色相同或者其他颜色,让它占颜色位置。设置后的结果图如下:
在这里插入图片描述
这里我给折线上的圆圈颜色设置为pink, 添加到add_yaxis中的参数代码为:color=‘pink’

完整代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# ----------------------------------
# @Time    : 2024/3/11 14:41
# @File    : ab_ana_0304 - test.py
# Description   : 
# ----------------------------------
from pyecharts.charts import Line, Scatter
import pyecharts.options as opts
linex = []
liney = []
scatter1x = []
scatter1y = []
scatter2x = []
scatter2y = []
line = (Line()
        .add_xaxis(linex)
        .add_yaxis('value', liney, color='pink', is_symbol_show=False, linestyle_opts=opts.LineStyleOpts(color='red'))
        .set_global_opts(title_opts=opts.TitleOpts(title="{}指标数据趋势图".format(00)),
                         yaxis_opts=opts.AxisOpts(min_=10, max_=20),
                         datazoom_opts=opts.DataZoomOpts(),  # 添加数据缩放
                         # visualmap_opts=opts.VisualMapOpts(is_show=False)
                         )
        )

ab_scatter1 = (
    Scatter()
    .add_xaxis(scatter1x)
    .add_yaxis("abnormal point1", y_axis=scatter1y,
               symbol_size=10,  # 设置散点的大小
               symbol='triangle',
               label_opts=opts.LabelOpts(is_show=False),
               color='green'
               )
    .set_series_opts()
    .set_global_opts(legend_opts=opts.LegendOpts(is_show=False))
)


# 异常点展示
ab_scatter2 = (
    Scatter()
    .add_xaxis(xaxis_data=scatter1y)
    .add_yaxis(series_name="abnormal point2",
               y_axis=scatter2y,
               symbol='circle',
               color='blue'
               )
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(legend_opts=opts.LegendOpts(is_show=False))
)

# 将散点图叠加在折线图上
# 使用Overlap组件创建复合图表
line.overlap(ab_scatter1)
line.overlap(ab_scatter2)
line.render("颜色测试.html")

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

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

相关文章

k8s集群部署elk

一、前言 本次部署elk所有的服务都部署在k8s集群中,服务包含filebeat、logstash、elasticsearch、kibana,其中elasticsearch使用集群的方式部署,所有服务都是用7.17.10版本 二、部署 部署elasticsearch集群 部署elasticsearch集群需要先优化…

VMware 配置虚拟机网络

之前需要完成的任务 (1)、下载和安装VMware-Workstation-Pro.exe软件,推荐16.0版本 (2)、下载centOS7镜像,可以在阿里云下载。 (3)、VM创建一个虚拟机,并且使用本地已下载…

IDEA配置JRebel热部署

插件仓库安装 打开IDEA,选择File—>Settings—>Plugins—>在右侧选择Marketplace, 在搜索框输入jrebel—>选择搜索结果—>点击Install JRebel激活 其中,Team URL可以使用在线GUID地址在线生成GUID 拿到GUID串之后&#xff…

vue2点击左侧的树节点(el-tree)定位到对应右侧树形表格(el-table)的位置,树形表格懒加载

左侧树代码 <el-tree :data"treeData" node-key"id" default-expand-all"" //节点默认全部展开:expand-on-click-node"false" //是否在点击节点的时候展开或者收缩节点:props"defaultProps" node-click"handleNodeC…

(二十五)Flask之MTVMVC架构模式Demo【重点:原生session使用及易错点!】

目录&#xff1a; 每篇前言&#xff1a;MTV&MVC构建一个基于MTV模式的Demo项目&#xff1a;蹦出一个问题&#xff1a; 每篇前言&#xff1a; &#x1f3c6;&#x1f3c6;作者介绍&#xff1a;【孤寒者】—CSDN全栈领域优质创作者、HDZ核心组成员、华为云享专家Python全栈领…

社区居民医疗健康系统 微信小程序

设计原则 本社区健康医疗APP采用 Hbuildex技术&#xff0c;使用Java语言开发&#xff0c;充分保证了系统稳定性、完整性。 社区健康医疗APP的设计与实现的设计思想如下&#xff1a; &#xff08;1&#xff09;操作简单方便、系统界面安全良好、简单明了的页面布局、方便查询相…

java-模拟的例题实战

例题实战 在实际的开发工作中&#xff0c;对字符串的处理是最常见的编程惹怒我。本题目即是要求程序对用户输入的串进行处理。具体规则如下&#xff1a; 1 把每个单词的首字母变成大写 2 把数字与字母之间用下划线字符&#xff08;_&#xff09;分开&#xff0c;使得更清晰 …

下载BenchmarkSQL并使用BenchmarkSQL查看OceanBase 的执行计划

下载BenchmarkSQL并使用BenchmarkSQL查看OceanBase 的执行计划 一、什么是BenchmarkSQL二、下载BenchmarkSQL三、使用BenchmarkSQL查看OceanBase 的执行计划 一、什么是BenchmarkSQL BenchmarkSQL是一个开源的数据库基准测试工具&#xff0c;可以用来评估数据库系统的性能&…

unity3d Animal Controller的Animal组件中Stances,Advanced基础部分理解

Stances 立场 立场要求在动物动画控制器上的姿态动画参数。 你可以有多个运动状态,并根据当前的立场使用它们 过渡的条件是: Stance StanceID Default Stance默认姿势 如果调用函数Stance_Reset&#xff08;&#xff09;&#xff0c;动物将返回到的默认姿势。 Current …

webconfig-boot项目说明

1、前言 最近利用空余时间写了一个项目webconfig-boot 。该项目主要配置了web项目常用的一些配置&#xff0c;如统一参数校验、统一异常捕获、统一日期的处理、常用过滤器、常用注解等。引入依赖接口完成常规的web配置。 这里也是总结了笔者在项目开发中遇到的一些常用的配置…

力扣111---二叉树的最小深度(简单题,Java,递归+非递归)

目录 题目描述&#xff1a; &#xff08;递归&#xff09;代码&#xff1a; &#xff08;非递归、层次遍历&#xff09;代码&#xff1a; 题目描述&#xff1a; 给定一个二叉树&#xff0c;找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说…

【源码编译】Apache SeaTunnel-Web 适配最新2.3.4版本教程

Apache SeaTunnel新版本已经发布&#xff0c;感兴趣的小伙伴可以看之前版本发布的文章 本文主要给大家介绍为使用2.3.4版本的新特性&#xff0c;需要对Apache SeaTunnel-Web依赖的版本进行升级&#xff0c;而SeaTunnel2.3.4版本部分API跟之前版本不兼容&#xff0c;所以需要对 …

备战蓝桥杯Day27 - 省赛真题-2023

题目描述 大佬代码 import os import sysdef find(n):k 0for num in range(12345678,98765433):str1 ["2","0","2","3"]for x in str(num) :if x in str1:if str1[0] x:str1.pop(0)if len(str1) ! 0:k1print(k)print(85959030) 详…

Qt 图形视图 /基于Qt示例DiagramScene解读图形视图框架

文章目录 概述从帮助文档看示例程序了解程序背景/功能理清程序概要设计 分析图形视图的协同运作机制如何嵌入到普通Widget程序中&#xff1f;形状Item和文本Item的插入和删除&#xff1f;连接线Item与形状Item的如何关联&#xff1f;如何绘制ShapeItem间的箭头线&#xff1f; 下…

Centos strema 9 环境部署Glusterfs9

本文档只是创建复制卷&#xff0c;分布式卷&#xff0c;分布式复制卷&#xff0c;纠删卷 操作系统 内核 角色 Ip地址 说明 CentOS Stream 9 x86_64 5.14.0-427.el9.x86_64 客户端 client 192.168.80.119 挂载存储业务机器 CentOS Stream 9 x86_64 5.14.0-427.el9.x8…

Git的介绍

导出项目依赖 # 以后项目给别人需要导出项目依赖&#xff0c;放在项目路径下&#xff0c;以后在运行项目前&#xff0c;先安装依赖 一般约定俗成都叫 requirements.txt,但是会有别的&#xff1a;req.txt | dev.txt # 两种方式&#xff1a; 1、虚拟环境所有装的第三方&…

分享6款非常炫酷的前端动画特效(附在线演示)

分享6款非常不错的项目动画特效 其中有three.js特效、canvas特效、CSS动画、SVG特效等等 下方效果图可能不是特别的生动 那么你可以点击在线预览进行查看相应的动画特效 同时也是可以下载该资源的 Three.js 3D游戏场景动画特效 基于Three.js的HTML5 3D动画&#xff0c;这个动…

【学习】感受野

感受野&#xff08;receptive field&#xff09;是指在神经网络中&#xff0c;某一层输出的特征图上的一个像素点对应输入图像的区域大小。在深度神经网络中&#xff0c;随着网络层数的增加&#xff0c;特征图的感受野也会逐渐增大。这是因为每一层的卷积操作都会扩大感受野。 …

python面向对象的三大特性:封装,继承,多态

1、面向对象有哪些特性 三种&#xff1a;封装性、继承性、多态性 2、Python中的封装 在Python代码中&#xff0c;封装有两层含义&#xff1a; ① 把现实世界中的主体中的属性和方法书写到类的里面的操作即为封装 ② 封装可以为属性和方法添加为私有权限&#xff0c;不能直…

设计模式二三事(含基础使用示例)

设计模式是众多软件开发人员经过长时间的试错和应用总结出来的&#xff0c;解决特定问题的一系列方案。现行的部分教材在介绍设计模式时&#xff0c;有些会因为案例脱离实际应用场景而令人费解&#xff0c;有些又会因为场景简单而显得有些小题大做。 本文会结合在美团金融服务…