Установить цвет градиента для гистограмм в Pyqtgraph - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь установить градиент цвета для моего гистограммы в pyqtgraph - цель состоит в том, чтобы создать градиент, который меняет цвет в направлении y.

Пока у меня есть этот фрагмент кода для попытаться сделать градиент, но столбцы не окрашены (или не закрашены):

from pyqtgraph.Qt import QtGui, QtCore
import pyqtgraph as pg

# Make gradient for bar plot
grad = QtGui.QLinearGradient(0, 0, 0, 3)
grad.setColorAt(0.1, pg.mkColor('#000000'))
grad.setColorAt(0.9, pg.mkColor('b'))
brush = QtGui.QBrush(grad)

# Attempt to add gradient to bar plot
self.bar = pg.BarGraphItem(x=data_x, height=data_y, width=700, brush=brush)
self.win = pg.plot()
self.win.addItem(self.bar, ignoreBounds=False)

enter image description here

1 Ответ

0 голосов
/ 22 апреля 2020

QGradients имеют различные режимы координат .

Режим по умолчанию LogicalMode, что означает, что координаты, установленные для этого градиента и используемые для рисования, используют логические vaues (как в «пикселях»).

Поскольку элементы pyqtgraph часто показывают даже небольшие значения данных и используют относительные координаты, это приводит к тому, что ваш градиент не полностью виден, возможно потому, что значения этих полос слишком малы.

Ограничьте координаты диапазоном 0-1, а затем установите режим относительных координат:

grad = QtGui.QLinearGradient(0, 0, 0, 1)
grad.setCoordinateMode(QtGui.QGradient.ObjectBoundingMode)

Обратите внимание, что начиная с Qt5.12, ObjectBoundingMode устарел, и вместо него следует использовать ObjectMode.

...