pyqtgraph:对齐不同图中x轴的刻度

2023-12-05

这是后续这个问题.

问题是当其中一个图重新缩放时如何调整多个 pyqtgraph 的 x 轴缩放。我想要的结果是所有图表的刻度完美对齐,以便您可以直接比较两个图表的内容。

给定的答案存档了该任务,即根据变化重新缩放图表,但是当图表的内容不同时,y 轴描述往往具有不同的大小,这会以某种方式弄乱一切。

例如,在下图中,我调整了底部图以大致覆盖 0-100 范围。奇怪的是,上图显示了更大的间隔。

有什么想法如何在重新缩放时对齐刻度线吗?

enter image description here

示例源代码:

import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui
import numpy as np
from pyqtgraph.dockarea import *
import sys


def onSigRangeChanged(r):
    w1.sigRangeChanged.disconnect(onSigRangeChanged)
    w2.sigRangeChanged.disconnect(onSigRangeChanged)
    if w1==r:
        w2.setRange(xRange=r.getAxis('bottom').range)
    elif w2 == r:
        w1.setRange(xRange=r.getAxis('bottom').range)

    w1.sigRangeChanged.connect(onSigRangeChanged)
    w2.sigRangeChanged.connect(onSigRangeChanged)

app = QtGui.QApplication(sys.argv)

win = QtGui.QMainWindow()
area = DockArea()
win.setCentralWidget(area)
win.resize(1000,500)
win.setWindowTitle('pyqtgraph example: dockarea')


d1 = Dock("Dock1")
d2 = Dock("Dock2")
area.addDock(d1, 'bottom')
area.addDock(d2, 'bottom', d1)

w1 = pg.PlotWidget(title="Dock 1 plot")
w1.plot(np.random.normal(size=100)*1e12)
w1.plotItem.showGrid(x=True,y=True,alpha=1)
d1.addWidget(w1)

w2 = pg.PlotWidget(title="Dock 2 plot")
w2.plot(np.random.normal(size=100))
w2.plotItem.showGrid(x=True,y=True,alpha=1)
d2.addWidget(w2)

w1.sigRangeChanged.connect(onSigRangeChanged)
w2.sigRangeChanged.connect(onSigRangeChanged)

win.show()

sys.exit(app.exec_())

我刚刚找到答案this问题。

而不是连接到sigRangeChanged事件我们可以直接链接轴刻度w2.setXLink(w1)。当然,我们必须删除与sigRangeChanged否则鳞片会飞向天空。这是示例代码:

import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui
import numpy as np
from pyqtgraph.dockarea import *
import sys

app = QtGui.QApplication(sys.argv)

win = QtGui.QMainWindow()
area = DockArea()
win.setCentralWidget(area)
win.resize(1000,500)
win.setWindowTitle('pyqtgraph example: dockarea')


d1 = Dock("Dock1")
d2 = Dock("Dock2")
area.addDock(d1, 'bottom')
area.addDock(d2, 'bottom', d1)

w1 = pg.PlotWidget(title="Dock 1 plot")
w1.plot(np.random.normal(size=100)*1e12)
w1.plotItem.showGrid(x=True,y=True,alpha=1)
d1.addWidget(w1)

w2 = pg.PlotWidget(title="Dock 2 plot")
w2.plot(np.random.normal(size=100))
w2.plotItem.showGrid(x=True,y=True,alpha=1)
w2.setXLink(w1)
d2.addWidget(w2)

win.show()

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

pyqtgraph:对齐不同图中x轴的刻度 的相关文章

  • 下载 PyQt6 的 Qt Designer 并使用 pyuic6 将 .ui 文件转换为 .py 文件

    如何下载 PyQt6 的 QtDesigner 如果没有适用于 PyQt6 的 QtDesigner 我也可以使用 PyQt5 的 QtDesigner 但是如何将此 ui 文件转换为使用 PyQt6 库而不是 PyQt5 的 py 文件
  • Django REST序列化器:创建对象而不保存

    我已经开始使用 Django REST 框架 我想做的是使用一些 JSON 发布请求 从中创建一个 Django 模型对象 然后使用该对象而不保存它 我的 Django 模型称为 SearchRequest 我所拥有的是 api view
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • 如何收集列表、字典等中重复计算的结果(或制作修改每个元素的列表的副本)?

    There are a great many existing Q A on Stack Overflow on this general theme but they are all either poor quality typical
  • DreamPie 不适用于 Python 3.2

    我最喜欢的 Python shell 是DreamPie http dreampie sourceforge net 我想将它与 Python 3 2 一起使用 我使用了 添加解释器 DreamPie 应用程序并添加了 Python 3 2
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • pandas 替换多个值

    以下是示例数据框 gt gt gt df pd DataFrame a 1 1 1 2 2 b 11 22 33 44 55 gt gt gt df a b 0 1 11 1 1 22 2 1 33 3 2 44 4 3 55 现在我想根据
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • 如何使用装饰器禁用某些功能的中间件?

    我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
  • IRichBolt 在storm-1.0.0 和 pyleus-0.3.0 上运行拓扑时出错

    我正在运行风暴拓扑 pyleus verbose local xyz topology jar using storm 1 0 0 pyleus 0 3 0 centos 6 6并得到错误 线程 main java lang NoClass
  • NameError:名称“urllib”未定义”

    CODE import networkx as net from urllib request import urlopen def read lj friends g name fetch the friend list from Liv
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

    这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特
  • ExpectedFailure 被计为错误而不是通过

    我在用着expectedFailure因为有一个我想记录的错误 我现在无法修复 但想将来再回来解决 我的理解expectedFailure是它会将测试计为通过 但在摘要中表示预期失败的数量为 x 类似于它如何处理跳过的 tets 但是 当我
  • Python:尝试检查有效的电话号码

    我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
  • 循环中断打破tqdm

    下面的简单代码使用tqdm https github com tqdm tqdm在循环迭代时显示进度条 import tqdm for f in tqdm tqdm range 100000000 if f gt 100000000 4 b
  • 为美国东部以外地区的 Cloudwatch 警报发送短信?

    AWS 似乎没有为美国东部以外的 SNS 主题订阅者提供 SMS 作为协议 我想连接我的 CloudWatch 警报并在发生故障时接收短信 但无法将其发送到 SMS YES 经过一番挖掘后 我能够让它发挥作用 它比仅仅选择一个主题或输入闹钟
  • 对输入求 Keras 模型的导数返回全零

    所以我有一个 Keras 模型 我想将模型的梯度应用于其输入 这就是我所做的 import tensorflow as tf from keras models import Sequential from keras layers imp
  • Python - 字典和列表相交

    给定以下数据结构 找出这两种数据结构共有的交集键的最有效方法是什么 dict1 2A 3A 4B list1 2A 4B Expected output 2A 4B 如果这也能产生更快的输出 我可以将列表 不是 dict1 组织到任何其他数
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例

随机推荐

  • 这个递归正则表达式究竟是如何工作的?

    这是后续这个问题 看看这个模式 o 1 o It matches any sequence of o with a length of 2n with n 1 It works see regex101 com word boundarie
  • Python在内存中解压gzip数据,无需文件

    我已经从 HTTP 回复中压缩了数据 我有以下代码 def gzipDecode self content import StringIO import gzip outFilePath test compressedFile String
  • 如何隐藏或折叠 VSC 中的所有 javascript console.log 行

    大量的日志记录对我来说非常有帮助 然而 有时我想通过隐藏 折叠或降低字体的不透明度来暂时减少在 VSC 中编辑的代码的混乱程度 console log console warn and console errorjavascript Vue
  • PHP 重定向强制刷新 (CTRL+F5)

    我有一个带有可编辑表格的页面 我需要用户能够编辑它 然后提交他们的更改 一切正常 直到我将它们重定向到包含新内容 与其更改相关 的同一页面 然而 他们看到的是旧内容 如果我在浏览器上按 ctrl f5 它们的内容就会更新 我想知道是否有办法
  • C# 语法:----- IEnumerable people = new List();

    我理解前两句话 然而 对于第三个说法 我无法弄清楚这是什么类型的人 IEnumerable 人 还是列表 人 我认为幕后有一个转换 有人能解释一下陈述3中使用了什么技术吗 IEnumerable Person people new IEnu
  • 谷歌玩游戏成就重置(每天)

    上周我们软启动了我们的游戏 我们开始收到人们的错误 他们 所有人 似乎都存在的错误之一是 他们的成就至少每天都会被重置 但有时甚至在重新启动游戏时也会重置 成就在解锁时确实会弹出窗口 甚至在成就 UI 中可见 但它们不断被重置 删除 我们确
  • 从 Plone 内容类型生成 PDF

    我需要从内容类型创建 PDF 如果重要的话 可以灵活地制作 以便用户创建一个新文档 并在填写表单后生成 PDF 并准备下载 因此 基本上在创建 修改文档后 应该创建一个 PDF 并将其存储在 ZODB 中 实际上我使用的是 blob 以便我
  • 忽略 内的元素以不在点击时导航

    我正在尝试开始删除 btn 它位于 div 内 该 div 包含在react router dom 标记中 我希望能够在单击该 div 时导航到已建立的路径 但如果目标是删除 btn 那么它不应该导航 而只是在删除 btn 内执行 onCl
  • 如何在 Vim(或其他地方)中使用正则表达式搜索十六进制转储?

    我正在寻找一种方法来搜索二进制文件的十六进制转储中一系列十六进制数字的文本表示形式 如下所示 0x000001A0 36 5B 09 76 99 31 55 09 78 99 34 51 49 BF E0 03 0x000001B0 28
  • 绘制多重比较图?

    当一个人希望比较 测试 多个组时 例如 在进行方差分析时 就会面临多重比较的问题 如果我们想绘制比较图 同样适用 我的问题是 您知道哪些工具 在 R 中 可以进行反映多重比较的绘图 目前 我只知道两个 尽管我确信还有更多 TukeyHSD
  • 在 C 中将 char 指针类型转换为 float [重复]

    这个问题在这里已经有答案了 我有一个包含 ff 数据的平面文件 date quantity price item 我想使用以下结构创建数据记录 typedef struct char date item int quantity float
  • 使用 Python 的旧推文 Tweepy

    我正在尝试使用 Python 中的 tweepy 获取较旧的推文数据 大约 2 个月前 我尝试了自始至终的参数 但没有成功 有没有人在 tweepy 或其他 API 中找到解决办法 for id tweet in enumerate twe
  • 如何将布尔值插入数据库

    我必须将用户数据添加到名为 employees 的数据库表中 它有 ID 姓名 姓氏 用户名 密码 电子邮件 地址 管理员权限选项 Administator rigts 是布尔选项 是或否 当我制作一个包含所有数据的表单时 我想通过复选框检
  • 为什么Python无法从PIL导入图像?

    我尝试运行的单行如下 from PIL import Image 无论这看起来多么简单 它都会给出一个错误 Traceback most recent call last File C 2014 10 22 12 49 py line 1
  • 在 SQL Server 中创建审核触发器

    我需要对 SQL Server 2005 数据库中的两个表实施更改跟踪 我需要审核添加 删除 更新 详细说明更新内容 我本来打算使用trigger这样做 但似乎很容易错误地做到这一点 任何人都可以发布一个更新触发器的示例 以优雅的方式成功地
  • C# 如何将两个表达式组合成一个新表达式?

    我有两种表达方式 public static Expression
  • requiredFieldValidator - 因此,如果禁用 Javascript,则可以避免整个 .NET 控件?

    我最近正在使用 NET 并且检查了一些字段 我知道检查是在客户端 javascript 和服务器端进行的 Page Validate if Page IsValid 但如果禁用了 javascript 则所有这些都不会被检查 事实上 当我尝
  • ios 8自定义键盘按住按钮可以删除吗?

    我目前正在构建一个自定义键盘 我快完成了 我遇到的一个问题是删除按钮 当用户点击删除按钮时 它会执行它应该执行的操作并删除先前的文本条目 然而 当用户按住按钮时 什么也没有发生 如何让用户按住删除按钮时 键盘像标准ios键盘一样连续删除 这
  • 为什么延迟求值可以将不纯函数转化为纯函数?

    我知道纯函数是不依赖于系统状态的函数 没有副作用 其输出仅取决于其输入 进行 http 调用被认为是副作用 因此 以下是不纯函数的示例 const httpCall url params gt getJson url params 但是 只
  • pyqtgraph:对齐不同图中x轴的刻度

    这是后续这个问题 问题是当其中一个图重新缩放时如何调整多个 pyqtgraph 的 x 轴缩放 我想要的结果是所有图表的刻度完美对齐 以便您可以直接比较两个图表的内容 给定的答案存档了该任务 即根据变化重新缩放图表 但是当图表的内容不同时