首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript InfoVis工具包的“你好,世界”是什么?

Javascript InfoVis工具包的“你好,世界”是什么?
EN

Stack Overflow用户
提问于 2013-09-28 22:05:51
回答 1查看 1.5K关注 0票数 4

我正在做图论方面的研究,需要实时地可视化图形。(也就是说,如果图形数据发生变化,它的表示也会随之变化。)InfoVis似乎满足了这一目标,但我很难将一个简单的'Hello,World‘页面放在屏幕上显示一个带有可点击节点的图形(在该页面中,单击会导致节点改变颜色)。

我有一个JIT的工作安装(给定的示例工作),我只需要一个最小的InfoVis示例就可以开始了,而且很难从文档中将其中的一个拼凑在一起。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-28 22:44:12

小提琴的例子。

这并不是最低限度,但您可能可以删除更多的东西,使其如此。我从图形处理示例中提取了代码,并删除了一些多余的CSS和JS。

为了让节点改变颜色,我将这一行添加到"onClick“函数中:

代码语言:javascript
复制
node.data["$color"] = "#FF0000";

最起码的要素似乎是:

  1. JSON数据结构
  2. 实例化$jit.ForceDirected对象,并调用loadJSON

还有一堆用于跨浏览器兼容性的样板代码(检查画布支持等等)。

缩减的JSON结构如下所示:

代码语言:javascript
复制
// define three nodes
var json = [
    { // first node

        // node identifier
        id: "graphnode1",

        // node label
        name: "A graph node (#1)"

        // the node's color, shape, and size
        data: {
            $color: "#FFFFFF",
            $type: "circle",
            $dim: 10
        },

        // this node is adjacent to nodes 2 and 3
        adjacencies: [
            "graphnode2",
            {
                nodeTo: "graphnode2",
                // make the connector blue
                data: {
                    "$color": "#0000FF"
                }
            },
            "graphnode3",
            {
                nodeTo: "graphnode3",
            }
        ]
    },

    // second node
    {
        id: "graphnode2",
        name: "Another graph node (#2)"
    },

    // third node
    {
        id: "graphnode3",
        name: "Another graph node (#3)"
    }
];

下面是初始代码的大纲:

代码语言:javascript
复制
var json = { 
    // structure here
};
var fd = new $jit.ForceDirected({ 

    // create canvas in "infovis" DOM element
    injectInto: 'infovis',

    // many other options here
});
fd.loadJSON(json);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19072150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档