python-3.x - 在 pyqtgraph 中为条形图设置渐变颜色
问题描述
我正在尝试在 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)
解决方案
QGradients 有不同的坐标模式。
默认模式是LogicalMode
,这意味着为该渐变设置并用于绘画的坐标使用逻辑值(如“像素”)。
由于 pyqtgraph 项目通常显示很小的数据值并使用相对坐标,这会导致您的渐变不完全可见,可能是因为这些条的值太小。
将坐标限制在0-1范围内,然后设置相对坐标模式:
grad = QtGui.QLinearGradient(0, 0, 0, 1)
grad.setCoordinateMode(QtGui.QGradient.ObjectBoundingMode)
请注意,由于 Qt5.12 ObjectBoundingMode 已被弃用,ObjectMode
应改为使用。
推荐阅读
- sql-server - SQLEXPRESS 连接字符串失败:错误 4060
- c# - 实体框架:外国实体不要求外国实体实际存在实体存在
- javascript - 使用动态键名设置对象状态的最佳方法?- 反应js
- python - 将axes.table多索引划分为不同的列
- android - 模拟和存根 System.getProperty ,Mockito 无法模拟/监视,因为“最终”类
- c# - 通过 C# 中的脚本执行时,Get-Content 命令无法识别
- azure - 具有设备授权授权类型的 Azure 资源管理的范围是什么?
- ssh - VS Code Remote - 带有空格的 Windows 路径 - ssh 错误
- sql - 从 CSV 表中生成 SQL 查询
- javascript - Prestashop 模块远程 API 请求