自定义matplotlib图像显示以添加复制/粘贴功能
我想要自定义matplotlib的图像显示功能,这样我可以按下控制键加C(control-c),就能把图像复制到剪贴板。然后我可以把它粘贴到OpenOffice的电子表格里,以便整理我的原始数据和图像结果。请问有没有办法做到这一点?谢谢!
2 个回答
2
import matplotlib
import matplotlib.pyplot as plt
if not globals().has_key('__figure'):
__figure = matplotlib.pyplot.figure
def on_key(event):
print event
if event.key=='c':
#print event.canvas.__dict__#.Copy_to_Clipboard(event=event)
# print event.canvas._tkphoto.__dict__
plt.savefig("/tmp/fig.png")
def my_figure():
fig = __figure()
fig.canvas.mpl_connect('key_press_event',on_key)
return fig
matplotlib.pyplot.figure = my_figure
这个在tk后端可以用,但我不知道怎么把图片复制到剪贴板。对于文本,我可以用xclip,但图片不行!而且不知道为什么,wx后端在ubuntu上也不太好用...
5
如果你在使用wx这个后端,FigureCanvasWxAgg
有一个叫Copy_to_Clipboard
的方法可以使用。你可以把CTRL+C这个按键事件绑定到这个方法上。想看个例子,可以参考这个示例代码。