强制 matplotlib 图形的背景透明

2024-01-04

我正在尝试在我正在编写的 Python Gtk3 应用程序中包含 matplotlib 图形。我想将图形的背景颜色设置为透明,以便图形仅显示在应用程序的自然灰色背景下,但到目前为止我尝试过的任何方法似乎都不起作用。

这是一个 MWE:

from gi.repository import Gtk
import matplotlib.pyplot as plt
import matplotlib.lines as mlines
import numpy as np
from matplotlib.backends.backend_gtk3agg import FigureCanvasGTK3Agg as FigureCanvas

class MyWindow(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self)
        fig, ax = plt.subplots()
        #fig.patch.set_alpha(0.0)
        x,y = np.array([[0, 1], [0, 0]])
        line = mlines.Line2D(x, y, c='#729fcf')
        ax.add_line(line)
        plt.axis('equal')
        plt.axis('off')

        fig.tight_layout()

        sw = Gtk.ScrolledWindow()
        sw.set_border_width(50)
        canvas = FigureCanvas(fig)
        sw.add_with_viewport(canvas)

        layout = Gtk.Grid()
        layout.add(sw)

        self.add(layout)

win = MyWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()

If the fig.patch.set_alpha(0.0)该行未注释,背景颜色只是变为白色,而不是灰色。非常感谢所有建议!


在我看来,需要隐藏的是轴背景。您可以尝试使用ax.patch.set_facecolor('None') or ax.patch.set_visible(False).

或者,您是否尝试过关闭图形和轴补丁?这可以通过以下方式完成:

for item in [fig, ax]:
    item.patch.set_visible(False) 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

强制 matplotlib 图形的背景透明 的相关文章

随机推荐

  • 用于管理 Razor 部分视图脚本的 HtmlHelpers

    我正在尝试使用For 循环 Html 助手 http www nuget org packages Forloop HtmlHelpers 用于管理我的 ASP Net MVC 4 项目中 Razor 部分视图的脚本 div class r
  • 为什么我的 NSOperation 子类永远不会完成?

    我有一个NSOperation我想同时运行的子类 我的理解是 要使并发操作起作用 我需要定义isConcurrent回来YES 我需要定义start method 我需要发送 KVO 通知isExecuting and isFinished
  • Rspec :存根 ActiveStorage 下载方法

    我开发的系统使用 ActiveStorage 将缓存数据存储在 S3 上 然后再将其用于其他用途 在我的规范中 我想存根该文件的下载方法 并加载特定文件以进行测试 allow user cached data to receive down
  • CLion 索引器无法解析项目目录中的某些包含内容

    我有一个 CLion C 项目 其结构如下 project gt my includes gt my own hpp gt source gt my app gt my src cpp my src cpp 的第一行是 include my
  • 常规方法和异步方法有什么区别(OnGet 与 OnGetAsync)

    我开始学习 Razor Pages 的工作原理 教程提到了 OnGet 和 OnPost 还提到我们也有异步选项 OnGetAsync 和 OnPostAsync 但他们没有提到它们是如何工作的 显然它们是异步的 但是如何呢 他们使用 AJ
  • Mercurial:将变更集推送到仓库 A,不知何故仓库 B 也有它?

    我在服务器上有一个名为 Gold 的存储库 作为我的生产存储库 在服务器上有一个名为 Silver 的存储库 充当开发存储库 然后显然在我的本地客户端上有一个或多个存储库 奇怪的是 当我将变更集从本地开发机器推送到 Gold 时 Silve
  • 如何在oracle中插入日期和时间?

    我在表中插入行时遇到问题 这是插入语句和表创建 这是大学作业的一部分 因此很简单 我做错了什么 我使用的是 Oracle SQL Developer 版本 3 0 04 我遇到的问题是它只插入 dd mon yy 而不是时间 我如何让它也插
  • 类型“{}”不可分配给类型“IntrinsicAttributes & IntrinsicClassAttributes”

    我目前正在制作一个简单的反应应用程序 这是我的index tsx import as React from react import as ReactDOM from react dom import App from components
  • 非串行管道 HTTP 可能吗?

    RFC 2616第8 1 2 2节 http www w3 org Protocols rfc2616 rfc2616 sec8 html sec8 1 2 2 states 支持持久连接的客户端可以 管道 其请求 即发送多个请求而不等待每
  • 如何在 Firebase 3.0 中注销用户?

    根据文档 https firebase google com docs reference js firebase auth Auth 我用该方法强制用户注销signOut 这是我尝试过的 var rootRef firebase data
  • 如何将活动类添加到 codeigniter 超链接?

    我知道这个问题经常出现 但我只是不知道如何使用已经回答的帖子来做到这一点 我有一个带有导航链接的标题 我想补充一下class active 到当前处于活动状态的链接 如果我有以下导航 我该怎么做
  • 第一个 rand() 在 srand(time(0)) 之后生成相同的值

    srand time 0 好像没有播种rand 正确的是 生成的第一个数字始终是相同的 这是在 OS X 上运行的 我的设置或代码有问题吗 我确实等待了几秒钟来重新运行该程序 第一个数字仅在一天后增加 其余数字始终是随机的 include
  • 如何使并发实用程序 (JSR 236) 在普通的非 EE Tomcat 8 中工作?

    我的技术栈包括 雄猫 8 5 47 https tomcat apache org download 80 cgi 简单 非 EE 焊接 2 4 8 最终 https mvnrepository com artifact org jboss
  • XML 与 Python 字典的相互转换

    我需要使用 Python 2 4 4 将 XML 与 Python 字典相互转换 我所需要的只是节点名称和值 我不担心属性 因为我正在解析的 XML 没有任何属性 我不能使用ElementTree因为这不适用于 2 4 4 而且由于我的工作
  • C# 中的 Linq 列表排名

    我有下面的列表 其中包含姓名和分数列表 我使用 linq 获取人员列表的分数总和得到的分数 Name Score Ed 5 John 6 Sara 7 Dean 3 Nora 4 所以我能够对列表进行分组并进行求和 但现在我尝试根据分数对它
  • 使用 SQL-Developer 时将脚本输出到文件

    我有一个select查询产生一个大的输出 我想在 sqldeveloper 中执行它 并将所有结果放入一个文件中 Sql developer 不允许结果超过 5000 行 而我有 100 000 行要获取 我知道我可以使用 SQL 但假设我
  • 替换 ASP.NET MVC 应用程序的 asp:Treeview

    到目前为止我曾与asp Treeview对于我的网络应用程序的所有动态菜单 任何合适的替代品ASP NET MVCWeb应用程序 有没有可以像 Treeview 一样为我执行的 HTML 帮助器 我会使用基于 jQuery 的插件 喜欢th
  • python中3D曲线的保形分段三次插值

    我在 3D 空间中有一条曲线 我想在其上使用类似于 matlab 中的 pchip 的保形分段三次插值 我研究了 scipy interpolate 中提供的函数 例如interp2d 但这些函数适用于某些曲线结构 而不适用于我拥有的数据点
  • PowerShell_ISE“创建管道时发生错误”#Requires -Version 3.0

    如果使用 PowerShell ISE 则在尝试使用任何 Requires 命令时 例如 Requires Version 3 0 他们的文本错误 创建管道时发生错误 类别信息 未指定 ParentContainsErrorRecordEx
  • 强制 matplotlib 图形的背景透明

    我正在尝试在我正在编写的 Python Gtk3 应用程序中包含 matplotlib 图形 我想将图形的背景颜色设置为透明 以便图形仅显示在应用程序的自然灰色背景下 但到目前为止我尝试过的任何方法似乎都不起作用 这是一个 MWE from