PyGTK:将matplotlib图复制到剪贴板 [英] PyGTK: copy matplotlib figure to clipboard

查看:220
本文介绍了PyGTK:将matplotlib图复制到剪贴板的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在研究PyGTK应用程序,它可以生成图表。这由matplotlib实现。我如何添加复制到剪贴板功能?如何将图复制到剪贴板?

解决方案

这将在Linux中执行(只需在图像上单击鼠标并将其复制准备粘贴到GIMP中的剪贴板):

  import matplotlib.pyplot as plt 
from matplotlib.backends.backend_gtk import FigureCanvasGTK如图Canvas
import gtk
import numpy as np

class W(gtk.Window):

def __init __(self):

gtk.Window .__ init __(self)

img = np.random.uniform(0,1,(200,200))

fig = plt。图()
fig.gca()。imshow(img)
self.image_canvas = FigureCanvas(fig)
self.image_canvas.connect('button_press_event',self.do_clip)

self.add(self.image_canvas)
self.show_all()
$ b $ def do_clip(self,widget = None,event = None):

snap = self.image_canvas.get_snapshot()
pixbuf = gtk.gdk.pixbuf_get_from_drawab le(None,snap,
snap.get_colormap(),0,0,0,0,
snap.get_size()[0],snap.get_size()[1])$ ​​b $ b clip = gtk.Clipboard()
clip.set_image(pixbuf)

$ bw = W()
gtk.main()


I'm working on PyGTK application, that can generate graphs. This achieved by matplotlib. How can I add Copy-To-Clipboard functionality? How to copy figure to clipboard?

解决方案

This will do it in Linux (just mouse-click on the image and it is copied to clipboard ready to paste in e.g. GIMP):

import matplotlib.pyplot as plt
from matplotlib.backends.backend_gtk import FigureCanvasGTK as FigureCanvas
import gtk
import numpy as np

class W(gtk.Window):

    def __init__(self):

        gtk.Window.__init__(self)

        img = np.random.uniform(0,1,(200,200))

        fig = plt.Figure()
        fig.gca().imshow(img)
        self.image_canvas = FigureCanvas(fig)
        self.image_canvas.connect('button_press_event', self.do_clip)

        self.add(self.image_canvas)
        self.show_all()

    def do_clip(self, widget=None, event=None):

        snap = self.image_canvas.get_snapshot()
        pixbuf = gtk.gdk.pixbuf_get_from_drawable(None, snap,
            snap.get_colormap(),0,0,0,0,
            snap.get_size()[0], snap.get_size()[1])
        clip = gtk.Clipboard()
        clip.set_image(pixbuf)


w=W()
gtk.main()

这篇关于PyGTK:将matplotlib图复制到剪贴板的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆