问题标签 [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 投票
4 回答
37071 浏览

python - 如何在 python 程序的简单 UI 中显示实时图形?

我有一个复杂的算法,可以更新存储在数组中的 3 个直方图。我想调试我的算法,所以我想在用户界面中将数组显示为直方图。最简单的方法是什么。(快速应用程序开发比优化代码更重要。)

我有一些使用 Qt(在 C++ 中)的经验和一些使用 matplotlib 的经验。

(我将把这个问题留一两天,因为如果没有更多我没有的经验,我很难评估解决方案。希望社区的投票有助于选择最佳答案。)

0 投票
2 回答
428 浏览

python - 交互式数据可视化 - Python

我一直在使用 Python 进行数据可视化。为此,我一直在使用 Matplotlib 来获得可视化效果。但是,现在除了完整的 GUI 之外,我还需要提供更多交互式可视化。我想知道如何在不丢失 Python 迄今为止所做的所有工作的情况下做这样的事情,即,是否有一些 Python 工具可以做这样的事情,或者我是否必须使用 D3 或类似的东西。 这里有一个我必须实现的例子。我不是在构建 Web 应用程序,我只需要提供良好的 GUI 和数据交互。

先感谢您。

0 投票
1 回答
3040 浏览

python - 使用 pyqtgraph 有效地绘制大型数据集

我正在尝试使用 pyqtgraph 生成散点图和直方图矩阵。每个散点图的输入(x 和 y 值)是长度大于 1,000,000 的 numpy 数组。生成这些图需要很长时间(对于 2x2 绘图矩阵 > 1 分钟)(matplotlib 在生成相同图时实际上更快)。你能指出我能做些什么来加快速度吗?下面是我正在使用的代码。

谢谢。

在网上搜索了很多之后,我最终尝试了一个基于 gpu 的绘图库 galry。结果是速度提高了 100 倍以上!下面是代码。不管怎样,我仍然想知道是否有办法使用 pyqtgraph 加快绘图速度。

0 投票
3 回答
13493 浏览

linux - 如何在 anaconda python 中导入 OpenGL?

我在 anaconda python 上使用 ipython notebook,但我不知道如何安装或导入 opengl。谁能帮我解决这个问题?我在 linux xubuntu 上使用 anaconda。抱歉英语不好。

0 投票
1 回答
1797 浏览

python - pyqtgraph:PyQtGraph 中的多种颜色

我可以使用 ArrayToQPath 在 pyqtgraph 中绘制不同颜色的多个通道吗?

0 投票
1 回答
682 浏览

python - 在 VisPy 中旋转立方体的表面显示图像

我玩过这个VisPy 的例子来展示一个旋转的立方体。有没有办法加载图像(例如 png)并将其显示为立方体的一个面?

0 投票
2 回答
446 浏览

python - 使用 vispy/scipy 时无法冻结应用程序

我有一个应用程序,我在其中添加了一个模块,该模块使用vispyscipy(用于 Delaunay)绘制数据。当我在 Python(Windows 上为 3.4 x64)解释器中运行时它工作正常,但在使用cx_freeze. 它没有给我任何错误消息,只是它没有(安静地)运行。

这是我的cx_freeze脚本:

我必须'scipy.sparse.csgraph._validation'按照此处的建议添加以修复先前缺少的包含:scipy with py2exe and here

寻找 DLL 问题,我已经尝试过使用 Dependency Walker,但没有运气。

vispy如果我用情节注释掉模块,一切正常。有什么提示吗?

0 投票
2 回答
564 浏览

python - 在OpenGL中绘制中心不在视野中的圆圈

我正在使用 vispy 画很多圆圈,这里是参考程序:

http://vispy.org/examples/basics/gloo/display_points.html

当圆心超出 (-1, -1) - (1, 1) 范围时,整个圆消失了。

这是一个简单的例子:

当中心为 (1.01, 0) 时,正方形将消失:

在此处输入图像描述

0 投票
1 回答
298 浏览

python - 在 python 甚至 webgl 中具有静态节点的网络动画

所以我有一项特殊的任务需要帮助,但我不知道该怎么做。我有一个在一组固定的网络节点之间形成联系的模型。所以我想设置一个窗口或可视化来显示某种二维或三维网格上的所有节点集。然后对于每个时间步,我想用节点之间的最新关系更新可视化窗口。因此,我将从位于空间中的一组节点开始,然后随着每个时间步长,可视化将逐渐添加新的边。

这里的挑战是我知道在networkx之类的东西中,在每个时间步重绘网络是行不通的。很多常见的网络显示算法都是随机放置节点,以使节点之间的距离最大化,更好地显示边缘。因此,如果我在每个时间步重新绘制网络,节点每次都会位于不同的位置,并且很难识别网络增长的模式。这就是我想要一组静态节点的原因,这样我就可以看到边是如何在每个时间步添加的。

我希望一次可视化大约 100 个节点。所以我会从20个左右的少量节点开始,逐步建立到100个节点。验证模型后,我将构建多达 1000 或 2000 个节点。当然,很难可视化 1000 或 2000 个节点的网络,这就是为什么我只想确保在模拟中只有 100 个节点时可以可视化网络。

我不确定是否可以在 webgl 或其他东西中执行此操作,或者是否有在 python 中执行此操作的好方法。如果需要,我可以使用 Vispy 在 python 和 webgl 之间进行通信。

0 投票
3 回答
688 浏览

python - 旋转大型阵列,尽可能快

我对 Python 比较陌生,正在寻找用于旋转大型多维数组的最佳优化代码。在下面的代码中,我有一个 16X600000 32 位浮点多维数组,根据计时器,旋转我的四核 acer windows 8 平板电脑上的内容大约需要 30 毫秒。如果可以减少旋转阵列所需的时间,我正在考虑使用一些 Cython 例程或类似的东西。

最终,代码将用于存储基于 VisPy 包的高速数据绘图图的 y 轴值,并将 32 位浮点数组传递给 OpenGL 例程。如果可能的话,我希望达到不到 1 毫秒。

任何评论、建议或示例代码将不胜感激。

更新

我想我到底要做什么有些困惑,所以我会尝试更好地解释一下。

最终目标是拥有一个快速的实时数据记录设备,该设备在表示信号值的图表上画线。将有多个通道和至少 1ms 的采样率和尽可能多的记录时间。我从这个 VisPy 示例开始。示例中将新数据写入数组并将其发送到 OpenGL 的On_Timer代码位于底部附近的函数中。我稍微修改了这段代码以将 OpenGL 画布集成到 Qt gui 中,并添加了一些代码以通过以太网套接字从 Arduino Mega 获取数据。

目前,我可以生成 16 条线的实时图表,采样率约为 1 毫秒,帧率约为 30 赫兹,记录时间约为 14 秒。如果我尝试再增加通道数或记录长度,程序将停止工作,因为它无法跟上 1ms 通过以太网端口进入的数据流。

我能找到的最大罪魁祸首是使用y[:, :-1] = y[:, 1:]例程完成数据缓冲区移位所需的时间。最初我提交了这个函数正在计时的基准代码,希望有人知道以更有效的方式做同样事情的方法。这一行的目的是将整个数组向左移动一个索引,然后在我的下一行代码中,我将新数据写入右侧的第一个槽。

您可以在下面看到我修改后的图形更新例程。首先它从队列中取出新数据并解包到一个临时数组中,然后移动主缓冲区数组的内容,最后将新数据复制到主数组的最后一个槽中。一旦队列为空,它就会调用更新函数,以便 OpenGL 更新显示。