在 pyqtgraph 中为条形图设置渐变颜色

Posted

技术标签:

【中文标题】在 pyqtgraph 中为条形图设置渐变颜色【英文标题】:Set gradient color for bar graphs in pyqtgraph 【发布时间】:2020-08-04 22:40:49 【问题描述】:

我正在尝试在 pyqtgraph 中为我的条形图设置颜色渐变 - 目标是制作在 y 方向上改变颜色的渐变。

到目前为止,我有这段代码 sn-p 来尝试制作渐变,但没有绘制(或刷)条:

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)

【问题讨论】:

【参考方案1】:

QGradients 有不同的coordinate modes。

默认模式是LogicalMode,这意味着为该渐变设置并用于绘画的坐标使用逻辑值(如“像素”)。

由于 pyqtgraph 项目通常显示很小的数据值并使用相对坐标,这会导致您的渐变不完全可见,可能是因为这些条的值太小。

将坐标限制在0-1范围内,然后设置相对坐标模式:

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

请注意,由于 Qt5.12 ObjectBoundingMode 已被弃用,应改用ObjectMode

【讨论】:

以上是关于在 pyqtgraph 中为条形图设置渐变颜色的主要内容,如果未能解决你的问题,请参考以下文章

使用 pyqtgraph 实时更新条形图

用渐变填充条形图的径向条

Pyqtgraph水平条形图

使用 2D-Array 提供 PyQtGraph 条形图

如何使用渐变颜色为分布图的条形着色?

R语言ggplot2可视化改变柱状图(条形图)的填充色实战:默认的颜色为灰色改变柱状图(条形图)的填充色设置每个柱子(条形)使用不同的色彩