问题标签 [visualization]
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.
javascript - JavaScript 准备好可视化大型数据集了吗?
我们有一些数据(10-50 列,数十万行),我们通常在 Excel 中将其可视化为折线图或堆积条形图。
用户希望能够放大和缩小图表以深入了解各个样本,但这些操作确实让 Excel 陷入了困境。
我正在考虑将数据嵌入到 HTML 页面中,使用内联 JavaScript 来处理浏览器中的可视化。类似 flotr JS 图表库之类的东西将被用于图表。
- 这是一个愚蠢的想法吗?
- 浏览器准备好承受这种负载了吗?
- 这是一个已解决的问题,我应该在问之前更彻底地搜索一下吗?
objective-c - git DAG 的增量线性化
我是GitX的作者。GitX 的功能之一是分支的可视化,可以在这里看到。
这种可视化当前是通过读取从 git 以正确顺序发出的提交来完成的。对于每个提交,父母都是已知的,因此以正确的方式建立通道相当容易。
我想通过使用我自己的提交池并自己线性化提交来加快这个过程。这允许我重用现有的已加载提交并允许 git 更快地发出提交,因为它不必以正确的顺序发出它们。
但是,我不确定使用什么算法来实现这一点。重要的是构建是增量的,因为提交的加载可能需要很长时间(100,000 次提交超过 5 秒,应该全部显示)。
Gitk 也是如此,这里有一个补丁说明了它是如何实现的,但是我的 TCL 技能很弱,而且补丁的注释不是很彻底,而且有点难以理解。
我还希望这个算法高效,因为它必须处理数十万次提交。它还必须显示在表格中,因此快速访问特定行很重要。
我将描述到目前为止的输入、我想要的输出和一些观察结果。
输入:
- 我有一个哈希表形式的当前提交池,将提交 ID 映射到提交对象。此池不必是完整的(具有所有必要的提交)
- 我在 git 的新提交中加载了一个单独的线程,每次加载新提交时都可以调用一个回调。没有保证提交的顺序,但在大多数情况下,下一个提交是前一个提交的父级。
- 一个提交对象有自己的修订 id 和所有其父对象的修订 id
- 我有一个应该列出的分支负责人列表。也就是说,没有应该显示的 DAG 的单个“顶部”。也不必有单个图根。
输出:
- 我需要按拓扑顺序线性化这些提交。也就是说,一个提交在其父项被列出之后不能被列出。
- 我还需要可以在上面的屏幕截图中看到的“分支线”。这些可能需要预先计算,因为它们中的大多数依赖于他们的孩子。
几点说明:
- 有必要重新定位提交列表。例如,我们可能必须提交不相关的提交(分支头),直到出现使一个头成为另一个头的祖先的提交。
- 必须显示多个分支提示
- 重要的是这个过程是增量的,以便在数据仍在加载时至少有部分视图可用。这意味着必须在中途插入新数据并且必须重新调整分支线。
python - 如何在 python 中更改 IP 地址时可视化它们?
我编写了一个小脚本,每次我打开一个新的终端窗口时都会收集我的外部 IP 地址,并将其以及当前时间附加到一个文本文件中。我正在寻找一种方法来可视化我的 IP 地址何时/多久更改一次。我在家庭和校园之间跳来跳去,可以使用脚本将它们分开,但最好将它们分开可视化。
我经常使用 matplotlib。有任何想法吗?
graph - 使用graphviz绘制格子时如何将y位置强加在节点上?
我正在使用 Graphviz 绘制格子。
节点是一组数字。
作为一个格子,我希望节点的高度位置(y)表示该节点表示的集合中的元素数。然后 x 位置应由 graphviz 定义,以使表示更清晰。
是否可以?
根据 dot 文档,应该有属性 pos 应该定义节点的位置。但是,尽管我以许多不同的方式尝试了很多次,但我无法获得任何定义节点位置的图表。有人在这方面取得了成功吗?
以下是我使用的经典点文件:
如果有人可以编写一个定义一个节点高度的文件示例,我将不胜感激。
algorithm - 生成独特的颜色
我想将一些数据绘制到纹理中:一行中的许多项目。它们不是按顺序创建的,而且它们的大小可能都不同(想想内存堆)。每个数据项都是一个小矩形,我希望能够将它们区分开来,所以我希望它们中的每一个都具有独特的颜色。
现在我可以使用 rand() 生成 RGB 值并希望它们都不同,但我怀疑我不会在 RGB 空间中得到良好的分布。还有比这更好的方法吗?例如,在它们(几乎)重复之前循环不同颜色的好方法是什么?
颜色不必与项目中的任何数据匹配。我只是希望能够查看许多值并看到它们是不同的,因为它们是相邻的。
我可以弄清楚一些事情,但我认为这是一个有趣的问题。:)
java - Java3D模拟作业
我被分配了使用 java3D(粒子等)模拟宇宙开始的任务,并且必须由 5 个不同的部分组成……每个部分的最小长度为 15 秒。像粒子汤阶段这样的阶段 - 基本上是 5 个可区分的可视化。它不必很复杂,只是球体以设定的编程行为四处移动。
除了构建一个依赖插值器的简单游乐场骑行外,我对 java3D 并没有真正做太多事情。
我如何能够保持时间线并在不同阶段之间切换?
我想知道如何最好地构建这个模拟。使用 PositionInterpolator 是否适合移动粒子和检测碰撞?还是有更好的方法来实现我正在寻找的东西?
到目前为止,我已经开始为一些粒子建模——简单的不同大小和颜色的球体,并将它们随机放置在简单的宇宙中,并使用 PositionInterpolator 对它们应用随机方向,并使用 Transform3D 设置旋转。
任何指导和帮助将不胜感激。
c++ - 我应该如何将数据类链接到我的 GUI 代码(在 C++ 中显示对象的属性)?
我有一个类(在 C++ 中),调用它Data
,当代码运行时它有数千个实例(对象)。我有一个小部件(在 Qt 中),调用它DataWidget
来显示对象的属性。为了快速构建小部件,我只是将对象属性写入文件并让小部件解析文件中的属性 - 这种方法有效,但不可扩展或不美观。
更清楚地说,我的要求是:
1 -DataWidget
应该能够同时显示多个不同的Data
对象属性
2 -DataWidget
应该能够Data
每秒显示数千个对象
3 -DataWidget
应该与生成新Data
对象的代码一起运行
4 - 每个Data
对象都需要永久保存到文件/数据库
目前,GUI 已创建并DataWidget
创建,然后实验运行并生成数千个Data
对象(定期将其中一些写入文件)。实验运行后,DataWidget
显示最后Data
写入文件的对象(它们被写入 XML 文件)。
使用我当前的文件方法,我可以通过在实验运行后抓取多个文件来满足(1) 。由于实验与无关,因此没有并发性,因此在添加一个通知新文件存在的信号之前DataWidget
,我无法执行(3) 。DataWidget
我没有继续使用这种方法有两个原因:首先,即使文件没有立即写入磁盘,我无法想象这种方法是可扩展的,除非我实现一个缓存系统——但是,这似乎是我我要重新发明轮子?其次,Data
是图形数据结构的包装器,我正在使用 Graphml(通过 Boost 图形库,即write_graphml())将结构写入 XML 文件,并使用 Boost 的read_graphml()将结构读回需要我将文件读回Data
对象...这意味着程序的实验部分将对象编码为 XML,将 XML 写入文件(但希望在内存中而不是磁盘中),然后DataWidget
从文件中读取 XML 并将其解码为对象!
在我看来,我应该使用一个可以处理所有缓存等的数据库。此外,似乎我应该能够跳过文件/数据库Data
步骤DataWidget
并将的列表Data
)。然而,我还想将文件保存Data
到文件/数据库步骤并非完全没有意义——我只是在错误的时间以错误的方式使用它。
考虑到我的要求,更好的方法是什么?
是否有任何通用资源和/或指南来处理和显示此类数据?
javascript - 处理语言与 javascript?
我将开发一个在浏览器上运行并具有许多可视化和模拟工作(静电和电磁可视化、2D 和 3D)的综合教育软件。
哪种语言(处理、javascript 或其他)最适合我的目的?
c++ - C++ 画一棵树
我在 C++ 中搜索了 Tree Visualization Framework 或类似的东西。我想知道我没有找到类似的东西。是否有任何(好的)框架来绘制树(或其他数据结构)?它应该在 C++ 中。