2014-05-26 5 views
1

Запись в Python 2.7 с использованием PyQt 4.8.5:PyQt Matplotlib управления цветом

Как я могу изменить фон и граф-область (на первом плане?) Виджета Matplotlib? Я хотел бы сделать фон виджета «светло-серый» (тот же, что и цвет фона в графическом интерфейсе), и я хотел бы сделать черту графикой (см. Ниже).

Я новичок в программировании GUI с PyQt и хотели бы добиться этого: enter image description here

мой код:

self.ui.graph.axes.clear() 
self.ui.graph.axes.hold(True) 
self.ui.graph.axes.plot(self.Value,'r-') 
self.ui.graph.axes.grid() 
self.ui.graph.draw() 

ответ

4

Это следует сделать это:

ax = self.ui.graph.axes 
ax.set_axis_bgcolor('k') 
self.ui.graph.set_facecolor('none') 
+0

Обратите внимание, что график является экземпляром matplotlib.figure.Figure – Mike

+0

Ищет это так долго, спасибо! Не знал, что «нет» - это способ сделать его прозрачным :) – erocoar

0

Это сделал только отчасти работают для меня. Две первые строки работали нормально, но последнее не сработало. Ошибка я получил: AttributeError: объект «MatplotlibWidget» не имеет атрибута «set_facecolor»

решение было добавить цифру к коду:

ax = self.ui.graph.axes 
ax.set_axis_bgcolor('k') 
self.ui.graph.figure.set_facecolor('none') 

Интересно отметить, это то, что я пытался решить эту проблему, используя setPalette(), но это не сработало, пока в facecolor не было установлено значение «none», а затем неожиданно все изменения, внесенные мной в палитру.

Смежные вопросы