Настройка отображения изображений Matplotlib для добавления копирования / вставки

Я хотел бы настроить отображение изображений matplotlib так, чтобы я мог набрать control-c, и он скопирует изображение в буфер обмена, чтобы затем я мог скопировать его в электронную таблицу openoffice, чтобы упорядочить все мои необработанные данные и результаты изображений. Есть какой-либо способ сделать это? Спасибо!

2 ответа

Решение

Если вы используете бэкэнд wx, FigureCanvasWxAgg имеет Copy_to_Clipboard метод, который вы можете использовать. Вы можете связать событие клавиши CTRL+C, чтобы вызвать этот метод. Для примера посмотрите этот пример кода.

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

Это работает для бэкенда, но я понятия не имею, как скопировать изображение в буфер обмена. Для текста я могу использовать xclip, но изображения не работают! И по какой-то причине бэкэнд wx не слишком хорошо работает на Ubuntu...

Другие вопросы по тегам