pyqtgraph:缩放时保持 TextItem 的恒定位置

2024-01-02

我想要一个在缩放 y 轴时在图表上保持恒定位置的 TextItem,其功能与图例基本相同,只是作为 TextItem,我可以根据需要更改文本。我不知道该怎么做。欢迎任何建议。

这个例子说明了问题。在左侧图表中,缩放 y 轴会导致文本移动,而在右侧图表中,图例在缩放时保持在恒定位置。我希望像图例位置一样定义 textItem 的位置,相对于图形窗口处于恒定位置。或者,如果有人知道如何更改图例的格式并更新也可以工作的文本,但从我对文档的阅读来看,这是不可能的。

import pyqtgraph as pg 
from PyQt4 import QtGui 
import numpy as np 
import sys 
def main(): 
    app = QtGui.QApplication(sys.argv) 
    widg = QtGui.QWidget() 
    widg.move(100, 100) 
    pg.setConfigOption('background', 'w')
    pg.setConfigOption('foreground', 'k') 

    pgWidg = pg.GraphicsLayoutWidget()   
    pgWidg.resize(750, 250)  

    graph1 = pgWidg.addPlot(row=1, col=1) 
    graph2 = pgWidg.addPlot(row=1, col=2)
    curve1 = graph1.plot(y=np.sin(np.linspace(1, 21, 1000)), pen='k') 
    curve2 = graph2.plot(y=np.sin(np.linspace(1, 21, 1000)), pen='k') 

    graph1.addItem(curve1) 
    graph2.addItem(curve2) 
    graph1.setMouseEnabled(x=False, y=True)
    graph2.setMouseEnabled(x=False, y=True)

    graph1Text = pg.TextItem(text = 'A1', color=(0, 0, 0))
    graph1.addItem(graph1Text)
    graph1Text.setPos(150, 1)

    legend = graph2.addLegend()
    style = pg.PlotDataItem(pen='w')
    legend.addItem(style, 'A2')

    grid = QtGui.QGridLayout() 
    grid.addWidget(pgWidg, 0,0)          
    widg.setLayout(grid) 
    widg.show() 
    sys.exit(app.exec_()) 

if __name__ == '__main__': 
    main()

有点晚了,但是您可以通过定义忽略项目转换的文本项目来轻松实现这一点。重要的是你使用setParentItem与此类似,类似于图例项目:

import pyqtgraph as pg

pg.mkQApp()

plot = pg.PlotWidget()
moving_item = pg.TextItem("Moving", anchor=(0.5, 0.5))
still_item = pg.TextItem("Still", anchor=(0.5, 0.5))

still_item.setFlag(still_item.GraphicsItemFlag.ItemIgnoresTransformations)
# ^^^ This line is necessary

plot.addItem(moving_item, ignoreBounds=True)
# Use this instead of `plot.addItem`
still_item.setParentItem(plot.plotItem)

# This position will be in pixels, not scene coordinates since transforms are ignored.
# You can use helpers like `mapFromScene()` etc. to translate between pixels
# and viewbox coordinates
still_item.setPos(300, 300)

plot.show()

pg.exec()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pyqtgraph:缩放时保持 TextItem 的恒定位置 的相关文章

随机推荐

  • 如何导出驻留在给定 Domino 服务器上的数据库列表?

    我有一台 Lotus Domino 服务器 上面有数量惊人的 Domino 数据库 排列在各个文件夹中 是否有某种方法可以以某种电子表格格式导出所有这些数据库及其标题和创建者姓名的列表 我拥有 Domino Admin 和 Domino D
  • 开发多个 Visual Studio 2010 扩展

    我正在单独的解决方案中开发几个独立的 Visual Studio 扩展 当我打开其中一个并在调试器中启动实验实例时 其他解决方案 未打开 的其他扩展也会被加载 必须有一种方法可以一次仅在实验实例中启动一个扩展 特别是您当前正在开发的扩展 对
  • Java中如何将字符串转换为函数?

    stackoverflow上有一个类似标题的问题here https stackoverflow com questions 41283897 how to convert string into math function just on
  • 如何在 Rust 中构建多工作区货物项目

    我有多工作空间 Cargo 项目 它有两个工作区 common and server common is a lib项目和服务器是bin项目 该项目在Github中的位置是here https github com rajcspsg mul
  • Spark 2.1.0中读取大文件时出现内存不足错误

    我想使用 Spark 将大型 51GB XML 文件 在外部 HDD 上 读取到数据帧中 使用Spark XML 插件 https github com databricks spark xml 进行简单的映射 过滤 重新排序 然后将其作为
  • 如果您想创建模块化应用程序,最好的资源是什么? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在我对 Drupal Wordpress 和 Salesforce 等较新的 Web 平台 应用程序的
  • 三星 Galaxy S 上的图标背景?如何改变这个?

    我看到三星 Galaxy S 设备上的启动图标添加了背景 我需要将此背景更改为我们创建的自定义背景 我知道这可以改变 因为像 每日简报 这样的应用程序有自己的云状背景 使启动图标看起来非常丰富 如果有人知道如何更改此背景 请告诉我 看一下图
  • UICollectionView 顶部和侧面的浮动标题

    如何在 a 中实现标头UICollectionView 我知道您可以放入补充视图 但我不知道如何使它们 浮动 在部分上方 例如标题中的标题UITableView do 这是我的情况 我有一个collectionView单元格以网格格式布局
  • 如何在 Clojure 中编写 monoid 协议?

    由于显而易见的原因 以下内容不起作用 defprotocol Monoid mappend a b mzero mzero有零参数 并且协议中不允许 或没有意义 零参数方法 在 Haskell 或 Scala 中 调度是基于类型而不是基于值
  • 如何根据 ASP.NET MVC 中用户的选择对列表进行排序?

    我有一个客户列表 可以根据用户的选择按 1 到 6 个字段进行排序 排序字段可以按任何顺序 如果我提前知道字段和顺序 排序就很容易 customers customers OrderBy c gt c LastName ThenBy c g
  • 如何在 ASP.NET Core 中实现复选框列表?

    我希望在 ASP NET Core 中实现复选框列表 但面临一些困难 我的视图模型 public class GroupIndexViewModel public Filter Filters get set public class Fi
  • 导航栏无法通过 bootstrap5 在移动设备上扩展

    我正在使用 Bootstrap 5 制作一个网站 但我的导航栏不起作用 当我在移动设备上时 它不会扩展 import url https fonts googleapis com css2 family Poppins ital wght
  • 如何通过蓝牙使用 Android 应用程序连接到 Raspberry pi

    我无法使用应用程序通过蓝牙将智能手机连接到树莓派 我的情况 我正在开发一个基于树莓派的蓝牙可控应用程序 我可以通过蓝牙连接到树莓派 并使用应用程序 蓝牙终端 通过 RFCOMM 套接字发送和接收数据 树莓派不断监听 RFCOMM 连接 My
  • Android中如何获取电话号码?

    这是问题的延伸here https stackoverflow com questions 6329216 how to obtain mobile number of own device in android 现在我引用通用软件 htt
  • iPhone SDK-调试器错误:正在调试的程序未运行

    我按照 iPhone SDK 开发人员门户上的确切说明启动了第一页上的 Assistant 但即使我多次删除配置文件 证书并多次重复相同的过程 我仍然遇到相同的错误 请帮忙 如果您以前使用过它们 检查 NSDebugEnabled NSZo
  • 如何在 RDLC Microsoft Dynamic NAV 2013 报告中显示 Unicode 字符?

    我在 RDLC 报告中添加了一个文本框 并将其值设置为 unicode 字符 但当我运行报告时 我只得到了 符号 请帮我解决这个问题 我希望在报告中看到 unicode 字符 I had the same problem and found
  • Adobe AIR 有什么意义? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有点困惑 我不断看到有关 Adob e AIR 如何让您下载在桌面上运行的应用程序的文章 我们不是已经有了这个吗 这与任何 WinForms
  • 为现有 GitHub 存储库创建 CocoaPod

    最近我创建了一个小型 iOS 类 我想将它与 CocoaPods 一起使用 现在我已经将它添加到GitHub https github com cloverstudio CSGrowingTextView我已经关注了本教程 http nss
  • Eclipse 随机停止启动

    我最近经常使用Eclipse 并且没有遇到任何问题 昨晚 我的工作非常顺利 然而 今天早上 每当我加载它时 程序都会在加载初始屏幕的一半位置停止工作 在实际工作区打开之前 该信息显示 正在加载工作台 并且永远留在那里 当我多次单击它时 我收
  • pyqtgraph:缩放时保持 TextItem 的恒定位置

    我想要一个在缩放 y 轴时在图表上保持恒定位置的 TextItem 其功能与图例基本相同 只是作为 TextItem 我可以根据需要更改文本 我不知道该怎么做 欢迎任何建议 这个例子说明了问题 在左侧图表中 缩放 y 轴会导致文本移动 而在