如何在extjs的PANEL里用d3.js来绘图

 我来答
就烦条0o
2016-07-17 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
直接上图上代码:

 可用于绘制拓扑结构图.
Ext.define('EB.view.content.SingleView', {
    extend : 'Ext.panel.Panel',
    alias : 'widget.singleview',
    layout : 'fit',
    title : 'single view',
    initComponent : function() {
        this.callParent(arguments);
    },
    onRender : function() {
        var me = this;
        me.doc = Ext.getDoc();
        me.callParent(arguments);
        me.drawMap();
    },
    drawMap : function() {
        var width = 960, height = 500
        var target = d3.select("#" + this.id+"-body");
        var svg = target.append("svg").attr("width", width).attr("height",
                height);
        var force = d3.layout.force().gravity(.05).distance(100).charge(-100)
                .size([width, height]);
                // get from: 

                // example: force-directed images and labels
        d3.json("graph.json", function(json) {
            force.nodes(json.nodes).links(json.links).start();
            var link = svg.selectAll(".link").data(json.links).enter()
                    .append("line").attr("class", "link");
            var node = svg.selectAll(".node").data(json.nodes).enter()
                    .append("g").attr("class", "node").call(force.drag);
            node.append("image").attr("xlink:href",
                    "
).attr("x", -8).attr("y",
                    -8).attr("width", 16).attr("height", 16);
            node.append("text").attr("dx", 12).attr("dy", ".35em").text(
                    function(d) {
                        return d.name
                    });
            force.on("tick", function() {
                        link.attr("x1", function(d) {
                                    return d.source.x;
                                }).attr("y1", function(d) {
                                    return d.source.y;
                                }).attr("x2", function(d) {
                                    return d.target.x;
                                }).attr("y2", function(d) {
                                    return d.target.y;
                                });
                        node.attr("transform", function(d) {
                                    return "translate(" + d.x + "," + d.y + ")";
                                });
                    });
        });
    }
});

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式