加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 强制matplotlib图的背景是透明的

发布时间:2020-12-16 21:31:56 所属栏目:Python 来源:网络整理
导读:我正在尝试在我正在编写的 Python Gtk3应用程序中包含一个matplotlib图.我想将图形的背景颜色设置为透明,这样图形就会显示出应用程序的自然灰色背景,但到目前为止我所尝试的内容似乎都没有效果. 这是一个MWE: from gi.repository import Gtkimport matplotl
我正在尝试在我正在编写的 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()

如果取消注释fig.patch.set_alpha(0.0)行,则背景颜色只会变为白色而不是灰色.所有建议非常感谢!

解决方法

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

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

for item in [fig,ax]:
    item.patch.set_visible(False)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读