【发布时间】:2017-09-22 07:41:19
【问题描述】:
我的目标是为来自运动跟踪实验的数据创建交互式网络可视化。
移动物体的轨迹被渲染为由线连接的点。可视化允许用户平移和缩放数据。
我目前的原型使用Processing.js,因为我熟悉Processing,但是在绘制超过10,000个顶点或线的数据时遇到了性能问题。我采用了几种实现平移和缩放的策略,但我认为最好的当前实现是将数据保存为 svg 图像并使用 Processing.js 中的 PShape 数据类型来加载、绘制、缩放并翻译数据。代码的清理版本:
/* @pjs preload="nanoparticle_trajs.svg"; */
PShape trajs;
void setup()
{
size(900, 600);
trajs = loadShape("nanoparticle_trajs.svg");
}
//function that repeats and draws elements to the canvas
void draw()
{
shape(trajs,centerX,centerY,imgW,imgH);
}
//...additional functions that get mouse events
也许我不应该期望有这么多数据点的快速性能,但是有没有通用策略来优化使用 Processing.js 显示复杂的 svg 元素?如果我想显示 100,000 个顶点和线,我会怎么做?我应该一起放弃处理吗?
谢谢
编辑:
在阅读以下答案后,我认为图像将有助于传达可视化的本质:
它本质上是一个具有 >10,000 个点和连接线的散点图。用户可以平移和缩放数据,左上角的比例尺会根据当前缩放级别动态更新。
【问题讨论】:
标签: svg data-visualization interactive processing.js large-data