2015-06-04 2 views
0

Я хочу визуализировать matplotlibs colormaps (аналогично http://matplotlib.org/examples/color/colormaps_reference.html) и использовать его как QPixmaps в виджетах PyQt. Идея состоит в том, чтобы создать графики в matplotlib, фактически не показывая его (или сохраняя в файл) и преобразовать его в QPixmap. Решение, предлагаемое здесь (Python - matplotlib - PyQT: Copy image to clipboard), похоже, не работает, может быть, потому, что я не хочу показывать график matplotlib.Python - matplotlib - PyQT: plot to QPixmap

+1

Вы должны код для контекста - ответ на этот вопрос вы связаны должны работать нормально и не требует показывая Matplotlib сюжет на всех, так что вы должны уточните, что вы подразумеваете под «не работает». – Ajean

+0

После того, как я схватил pixmap, у него был размер 0x0 – Michael

+0

В конце концов, я пошел другим путем: вместо создания градиента с matplotlib я использовал метод setPixel для QImage – Michael

ответ

2

Я попытался следующие, и что работает:

def testColourMap(cmap): 
    sp = SubplotParams(left=0., bottom=0., right=1., top=1.) 
    fig = Figure((2.5,.2), subplotpars = sp) 
    canvas = FigureCanvas(fig) 
    ax = fig.add_subplot(111) 
    gradient = np.linspace(0, 1, 256) 
    gradient = np.vstack((gradient, gradient)) 
    ax.imshow(gradient, aspect=10, cmap=cmap) 
    ax.set_axis_off() 
    canvas.draw() 
    size = canvas.size() 
    width, height = size.width(), size.height() 
    im = QImage(canvas.buffer_rgba(), width, height, QImage.Format_ARGB32) 
    return QPixmap(im) 
Смежные вопросы