问题标签 [vispy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
61 浏览

python - 将 VISPY 集成到 WX

我正在努力让波纹管代码(MWE)工作。

预期行为:关闭所有窗口后 python 退出

观察到的行为:python 继续运行

有人知道为什么 python 不退出吗?

0 投票
1 回答
132 浏览

python - Vispy 多张图

我对 python 编程相当陌生,我正在努力使用 Vispy 库。

基本上,我有一个 Raspberry pi 连接到 2 个 Arduinos 加速度计传感器。覆盆子通过 UDP 将两个传感器的 X、Y 和 Z 值发送到我的计算机。然后我的电脑必须显示 9 个图表:6 个表示两个传感器的 x、y 和 z 的演变,3 个表示它们之间的差异(X1-X2、Y1-Y2 和 Z1-Z2),最后,它必须是真实的-时间。

最后一点我想使用 Vispy 库。阅读文档后,我想出了以下代码:

因此,正如评论所描述的,它首先初始化 UDP 连接和画布,然后对于收到的每个值,它都会用新添加的值更新画布。如果值的数量超过 100,则删除数组的第一个值以保持恒定数量的样本。

当我只想显示 X1 加速度计传感器的演变时,它工作得很好。所以现在我从 Vispy 文档中选择了代码,该文档演示了如何显示多个图形,但是对于我的关卡来说,代码有点太复杂了。

基本上,在我的代码中,我收到了data数组中的所有传感器值。我选择第一个值 [0] (X1),但完整的数据如下所示:[x1, y1, z1, dx, dy, dz, x2, y2, z2]其中 dx = x1 - x2,dy = y1 - y2 和 dz = z1 - z2。(差异必须直接在树莓上计算)。

因此,我尝试修改文档中的代码,如下所示:

因为我想要 9 个图,每个图只有 100 个样本。

我忽略了索引、颜色并删除了振幅,因为我不需要它。基本上,我几乎保留了整个设置部分的原始代码,然后我用我的替换了def on_timer

现在我正在尝试a_position用我自己的数据从 GLSL 提供数组。但我不确定如何准备数据以使其与此代码正常工作。我正在努力理解这些行的作用:

我删除了我认为我理解的周围代码。

请注意,即使我从 python 开始,当我在代码中使用裸对象时,我也知道他们正在使用 Canvas 的类定义。我了解self和其他人的使用。

如何使 realtime_signals 文档中的代码适应我的情况?

0 投票
0 回答
166 浏览

python - 设置一个 vispy 自动缩放,显示屏幕上的所有项目,如 pyqtgraph autoRange() 函数

是否可以像 pyqtgraph 那样为 vispy 实现自动范围功能?我有搜索但找不到任何或替代方法来实现它。

这是示例代码

0 投票
1 回答
136 浏览

python - 如何设置小部件以供 vispy 使用

我知道这个问题已经以几种方式提出,但我无法在我的具体用例中弄清楚。我使用 QT 设计器(pyQT 5.15)创建布局,并希望使用 vispy 作为显示。阅读后似乎我必须设置一个小部件,但我仍然不清楚如何设置。这就是我所拥有的,我正在尝试通过计时器将颜色从黑色更改为白色的简单示例。没有错误,但也没有可视化。

这是转换为 Python 的 GUI.ui,称为 GUI.py

这是应用程序部分:

0 投票
0 回答
28 浏览

python - 如何为 vispy.scene 添加标签

我在交互式 3d 可视化应用程序下工作。

我从以前的开发人员那里收到的代码结构如下:

这里 _mesh 是一个可视化对象。

我想给这个 SceneCanvas 添加标题。我该怎么做呢?我尝试使用 vispy label 小部件,但它不起作用。

我是这个图书馆的新手,因此,我将非常感谢您的回复!

0 投票
1 回答
100 浏览

python - 如何使用 Vispy 将视觉图像转换为极坐标

我正在尝试使用 Vispy 将我的视觉图像转换为极坐标形式

类似于下图的东西..

使用下面的 Vispy 代码生成的原始图像

使用 Vispy 生成的图像

所需的极地图像: 所需的极地图像

我确实尝试使用 Vispy 的PolarTransform Example来实现 polarTransform,但没有成功。

谁能指导我如何使用 Vispy 将上述图像的极坐标转换为极坐标。

谢谢

回复@djhoese: Vispy在PolarTransform之前生成的图 Vispy 在 PolarTransform 之前生成的图像

PolarTransform 后 Vispy 生成的图像 PolarTransform 后 Vispy 生成的图像

PolarTransform 的代码:

0 投票
0 回答
111 浏览

python - 使用 Vispy 为实时信号绘图添加标签

我对 Vispy 还不够熟悉。我确实为我的用例调整了这个示例,但我不知道如何进一步修改它以包含缺少的功能。

我正在尝试以相同的比例绘制实时 N 通道数据。使用pyqtgraph,界面如下所示:

在此处输入图像描述

并与vispy

在此处输入图像描述

我的目标是逐步匹配两个后端。目前的区别是:

  • Vispy 中的顺序是颠倒的(Vispy 顶部的图是 pyqtgraph 底部的图)
  • 缺少频道名称
  • 缺少 Y 轴标签
  • 缺少 X 轴和 X 轴标签
  • 顶部/底部缺乏净空

我不知道如何解决这些问题,如何进一步改进这个后端。任何提示,指导正确的,最好的功能都将非常有帮助。

我正在寻找visual.text,但定位似乎很困难。我不知道如何匹配其中一个情节前面的标签。

0 投票
0 回答
66 浏览

python - 在 vispy 中将绘图、文​​本、线条组合在同一个 canas 上

我有一个实时绘图系统,它从流中检索和预处理数据并绘制它,每个通道(从 1 到例如 100)绘制在不同的“行”上。带有pyqtgraph后端的版本是完整的,如下所示:

pyqtgraph 版本

但它的性能不是很好。因此,我想使用vispy,基于这个例子。@djhoese 建议我改用更高级别的场景,但我没有找到一种方法来一次传递整个数据数组(通道、样本),就像我使用 low-level 一样gloo,从而限制了 OpenGL 调用。由于性能是我为实时查看器实现后端的主要原因vispy,因此离开该gloo版本没有任何意义。此外,此版本提供了设置行数和列数的可能性。目前,我只使用一列,但未来的改进之一将是根据通道数选择行数/列数。例如,对于使用 128 个通道的系统,2 列窗口将是理想的。

我正在慢慢更改原始示例代码以满足我的需要。下面,您可以找到修改后的着色器(此处为完整代码):

我所做的更改之一是在窗口上定位不同点的转换。现在,情节区域从左侧开始,-0.9在右侧停止1;并从-0.9顶部开始并在0.9底部停止,从而释放边距。

我的问题是,如何在画布上添加其他元素?我想在例如添加一条固定垂直线-0.9,我想添加文本元素,我想添加一条移动垂直线,一条水平线,...我猜这些元素中的每一个都应该有自己的 VERT和 FRAG 着色器传递给 python 构造函数。这个对吗?您如何指定要在哪个 Canvas 上绘制,以及用于上述元素的不同构造函数是什么?

0 投票
1 回答
250 浏览

python - Vispy 绘图数据

我按照这个使用 Vispy 线程将标签添加到实时信号绘图并尝试使用来自https://vispy.org/gallery/scene/line_update.html#sphx-glr-gallery-scene-line-update-py的示例。我如何保存绘制的信息,我应该能够通过平移视图来查看过去的数据。我应该将绘制的数据存储在其他地方并检索它以查看旧数据吗?随着新数据添加到视图中,我试图保留所有信息。关于如何做到这一点的任何建议都会非常有帮助。

谢谢。

更新 1:

'''

'''

Update 2

0 投票
2 回答
53 浏览

python - 将 Vispy SceneCanvas 嵌入 PyQt5 时,绘图出现在错误的位置

我正在尝试编写 vispy.scene.SceneCanvas 的子类并将其用作我的 PyQt5 应用程序中的绘图小部件。然而,情节总是出现在错误的位置(右上角),我没有从 vispy 文档中得到任何关于这个问题的提示。

实际位置

预期职位

代码: