Pyqt5中设置matplotlib绘图区背景透明

news2024/11/20 11:43:37

Pyqt5中设置matplotlib绘图区背景透明

一、前言

最近组里接了学校的某项目,作者是团队里面负责做前端展示的,但是说实话,感觉QT做前端展示真不是很方便,开发过程中遇到不少棘手的问题。

其中一个卡了我一段时间的是界面画图表时设置图表的透明度,我尝试了不少网络上的方法,有不少都是错的,实现不了功能,导致界面很丑,我给个样图:

在这里插入图片描述
我画了个雷达图,我窗口背景是绿色的,但是matplotlib的Figure画布是白色底色的,这跟背景格格不入,于是我想更改其背景颜色或透明度。

二、失败的尝试

  • 尝试一

    我按照别人教程所说,利用下面的代码,设置FigureCanvasQTAgg对象的属性实现透明

    self.canvas.setStyleSheet("background-color: rgba(0, 0, 0, 0);")  # 设置透明背景
    
  • 尝试二

    第二次尝试,依然失败,因为坐标区域ax的方法fill其设置的ahpha值是针对绘图时候封闭区域透明度设置的

    ax.fill(angles, values, alpha=0.2)
    

    比如上面雷达图,设置上面的参数后,是如下效果:

在这里插入图片描述

  • 尝试三

    这一次,网友们说要在开始创建时通过设置facecolor以及alpha值来调整透明度

    self.figure = plt.figure(facecolor='skyblue', alpha=0)
    

    可是实测这就是瞎扯,看效果

在这里插入图片描述

尝试了这么多方法都成功不了,肺都要气炸了😡😡😡😡😡😡😡😡😡😡😡😡😡😡

三、苦后甘甜

经过多次尝试逐渐把他们摸索明白了,具体的设置项如下

  • 设置绘制的图像本身透明

    ax.plot(angles, values, 'o-', linewidth=2, alpha=0)
    

在这里插入图片描述

  • 设置画布透明

    self.figure.patch.set_alpha(0)
    

在这里插入图片描述

  • 设置绘图区域透明

    ax.patch.set_alpha(0)
    

在这里插入图片描述

  • 设置边框透明

    • 极坐标:这里的polar表示极坐标

      ax.spines['polar'].set_alpha(0)
      

    在这里插入图片描述

    • 直角坐标:下面的代码循环分别设置直角坐标上下左右的边框透明度

      for spine in ax.spines.values():
          spine.set_alpha(0)
      

    在这里插入图片描述

  • 设置绘图内容封闭区域或波形区域透明度

    ax.fill(angles, values, alpha=0.5)
    
    • 封闭区域区域 在这里插入图片描述
    • 折线区域
      在这里插入图片描述
  • 设置网格线透明度

    ax.xaxis.grid(True, color='gray', linestyle='--', alpha=0)  # 设置网格线透明度
    ax.yaxis.grid(True, color='gray', linestyle='--', alpha=1)
    

在这里插入图片描述

四、心灵的救赎

  1. 什么都无法舍弃的人,什么都无法实现。 ——《进击的巨人》
  2. 人人都知道没有圆满,但是期待圆满,就是关于遗憾最浪漫的答案。 ——《奇葩说7》
  3. 只有你的快乐和幸福不附属于任何人或物的时候,你才真正自由。否则,无论你被关在监狱里还是走在大街上,你依然是自己的囚犯。 《心灵午夜密谈》
  4. 在芸芸众生里,做一个普通的人,享受生命一刹那间的喜悦。那么我们即使不死,也在天堂了。 ——《三毛》

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

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

相关文章

ASP.NET基于Web的招投标系统的设计与实现

摘 要 招标拍卖的历史悠久,在近两千年的发展历程中,人们对拍卖的理论和技术做了大量的探讨。随着计算机网络技术的迅猛发展和日益成熟,为了提高招投标及采购工作的效率,为廉政建设和防止腐败提供技术保障,传统的拍…

计算机科学与导论 第十六章 安全

文章预览: 16.1引言16.1.1 安全目标16.1.2 攻击 16.2机密性16.2.1 对称密钥密码术16.2.2 非对称密钥密码术 16.1引言 为了安全,信息需要避开未授权的使用(机密性),保护信息不受到未授权的篡改(完整性),并且对于得到授权的实体来说是需要时可…

PSAvatar:一种基于点的可变形形状模型,用于3D高斯溅射的实时头部化身创建

PSAvatar: A Point-based Morphable Shape Model for Real-Time Head Avatar Creation with 3D Gaussian Splatting PSAvatar:一种基于点的可变形形状模型,用于3D高斯溅射的实时头部化身创建 Zhongyuan Zhao1,2, Zhenyu Bao1,2, Qing Li1, Guoping Qiu3,…

OpenWrt One/AP-24.XY 开源路由器发布,OpenWRT与Banana Pi社区合作

OpenWrt One/AP-24.XY 开源路由器 2024 年,OpenWrt 项目将迎来20 周年!OpenWrt 开源社区官方通过推出社区自己的第一个完全上游支持的硬件设计来庆祝这一周年纪念日。并与联发科,Banana Pi开源社区紧密合作,共同完成硬件的设计与…

运行django

确保app被注册 urls.py中编写url 视图对应关系 命令行启动 python manage.py runserver

图数据库Neo4J入门——Neo4J下载安装+Cypher基本操作+《西游记》人物关系图实例

这里写目录标题 一、效果图二、环境准备三、数据库设计3.1 人物节点设计3.2 关系设计 四、操作步骤4.1 下载、安装、启动Neo4J服务4.1.1 配置Neo4J环境变量4.1.2 启动Neo4J服务器4.1.3 启动Ne04J客户端 4.2 创建节点4.3 创建关系(从已有节点创建关系)4.4…

esp32 rst:0xf (BROWNOUT_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)

供电不足导致的 1、第1次出现 电脑usb电压不够,只有3.8V,给esp32s3供电,然后esp32带的模块太多,运行启动就一直报错 2、第2次出现 esp32带的模块单独电池供电,然后一运行MAX98357播放声音就重启 然后换模块单独充电…

月球地形数据介绍(LOLA)

月球地形数据介绍 LOLA介绍LOLA数据的处理与发布数据类型和格式投影坐标系SIMPLE CYLINDRICALPOLAR STEREOGRAPHIC 数据下载与浏览 LOLA介绍 目前最新的月球地形高程数据来源于美国2009年发射的LRO探测器。 “月球勘测轨道器”(Lunar Reconnaissance Orbiter,LRO)…

给一个新项目配置conda环境的完整流程,安装pytorch,dgl

创建环境,并指定python的版本,我这边指定为3.7: conda create --name [自定义的环境名] python3.7我这边假定我的环境名为grand: conda create --name grand python3.7创建成功后,初始化一下conda: source …

easyx库的介绍

前言 如果想要摆脱黑窗口的限制那么easyx图形库是一个好的选择 easyx的初认识 easyx是针对c的图形库,可以帮助c/c上手图形和游戏编程 所以要用easyx必须要用.cpp的后缀 1 easyx的原理 window的图形编程,最终都由window的底层API来实现 2 easyx的颜色 …

2010年认证杯SPSSPRO杯数学建模B题(第一阶段)交通拥堵问题全过程文档及程序

2010年认证杯SPSSPRO杯数学建模 交通拥堵问题 B题 Braess 悖论 原题再现: Dietrich Braess 在 1968 年的一篇文章中提出了道路交通体系当中的Braess 悖论。它的含义是:有时在一个交通网络上增加一条路段,或者提高某个路段的局部通行能力&a…

CRMEB PRO安装系统配置清单

统在安装完成之后,需要对系统进行一系列的配置,才能正常使用全部的功能,以下是官方整理的配置清单

组件安全(Solr、Shiro、Log4j、Jackson、FastJson、XStream)

Solr 主要基于HTTP和 Apache Lucene 实现的全文搜索服务器。 特征&#xff1a;图标识别 端口&#xff1a;8393 CVE-2019-0193&#xff08;远程命令执行漏洞&#xff09; 漏洞版本&#xff1a;Apache Solr < 8.2.0 利用条件&#xff1a; Apache Solr 的 DataImportHandler 启…

线上真实案例之执行一段逻辑后报错Communications link failure

1.问题发现 在开发某个项目的一个定时任务计算经销商返利的功能时&#xff0c;有一个返利监测的调度&#xff0c;如果某一天返利计算调度失败了&#xff0c;需要重新计算&#xff0c;这个监测的调度就会重新计算某天的数据。 在UAT测试通过&#xff0c;发布生产后&#xff0c…

【C++入门】类的6个默认成员函数、运算符重载、初始化列表、const成员、static成员

目录 引言 构造函数 引入构造函数 构造函数的特征 一些细节 析构函数 析构函数的特性 注意事项 拷贝构造函数 书写格式 使用细节 拷贝构造的典型应用场景 运算符重载 意义与格式 注意事项 赋值运算符重载 const成员 两个经典问题 再谈构造函数—初始化列…

『FPGA通信接口』汇总目录

Welcome 大家好&#xff0c;欢迎来到瑾芳玉洁的博客&#xff01; &#x1f611;励志开源分享诗和代码&#xff0c;三餐却无汤&#xff0c;顿顿都被噎。 &#x1f62d;有幸结识那个值得被认真、被珍惜、被捧在手掌心的女孩&#xff0c;不出意外被敷衍、被唾弃、被埋在了垃圾堆。…

使用http-parser解析http请求和响应数据

1 简介 http-parser是一个用C编写的HTTP消息解析器&#xff0c;专为高性能HTTP应用程序设计。它能够解析HTTP/1.0和HTTP/1.1的消息&#xff0c;包括头部、主体和连续行。当解析到特定的HTTP元素&#xff08;如请求行、头字段或消息体&#xff09;时&#xff0c;会触发相应的回调…

【前端面试3+1】15 CSS如隐藏元素、css块级元素和行内元素有哪些?两者有什么区别?、JavaScript中“==”与“===”的区别、【丢失的数字】

一、CSS如何隐藏元素&#xff1f; 1、使用 display: none; 这种方法会隐藏元素&#xff0c;并且不占据页面空间。元素会被完全移除&#xff0c;无法通过任何方式显示出来。 .hidden-element {display: none; }2、使用 visibility: hidden; 这种方法会隐藏元素&#xff0c;但仍然…

线段树汇总

线段树是一种二叉搜索树&#xff0c;与区间树相似&#xff0c;它将一个区间划分成一些单元区间&#xff0c;每个单元区间对应线段树中的一个叶结点。 使用线段树可以快速的查找某一个节点在若干条线段中出现的次数&#xff0c;时间复杂度为O(logN)。而未优化的空间复杂度为2N&a…

Office 2024安装教程(附免费安装包资源)

鼠标右击软件压缩包&#xff0c;选择“解压到Office 2024安装包”。 打开解压后的文件夹&#xff0c;鼠标右击“YAOCTRI_Installer”选择“以管理员身份运行”。 输入数字“1”自动开始安装。 软件正在安装&#xff0c;请耐心等待&#xff0c;谢谢。 安装完成&#xff0c;点击“…