H_jsen 2016-07-18 08:18 采纳率: 0%
浏览 2436
已采纳

ajax的值怎样传递到echarts中

在ajax中两个数组,分别是arr1,arr2;怎样将数组分别传递到echarts中的nodes:[]和links:[]中?求详细源码!

部分源码

 <div id="main" style="height:500px;"></div>
<script src="./js/echarts.js" ></script>
<script src="./js/jquery-1.8.3.min.js" ></script>
<script>
var arr1 = [];
var arr2 = [];
$.ajax({
    type:"POST",
    async:false,
    url:"mapdata.php",
    dataType:"json",
    success: function(result){
        var str = result;
        for (var i = 0; i < str.length; i++) {
            arr1.push("{"+"category:"+str[i].category,"name:'"+str[i].name+"'","value:"+str[i].value+"}");
            }
        //document.write(arr1);
        for (var i = 0; i < str.length; i++) {
            arr2.push("{"+"source:'"+str[i].source+"'","target:'"+str[i].target+"'","weight:"+str[i].weight,"name:'"+str[i].name_nexus+"'"+"}");
            }
        //document.write(arr2);
        },
    error:function(errorMsg){
        alert("请求数据失败!");
        },
    });

require.config({
    paths:{
        echarts:'./js'
        }
    });
require(
[
'echarts',
'echarts/chart/force'
],
function(ec){
    var myChart = ec.init(document.getElementById("main"));
    var option = {
        title : {
            text: '人物关系:葛优',
            x:'right',
            y:'bottom'
        },
        tooltip : {
            trigger: 'item',
            formatter: '{a} : {b}'
        },
        legend: {
            x: 'left',
            data:['家人','朋友']
        },
        series : [
            {
                type:'force',
                name : "人物关系",
                ribbonType: false,
                categories : [
                    {
                        name: '人物'
                    },
                    {
                        name: '家人'
                    },
                    {
                        name:'朋友'
                    }
                ],
                itemStyle: {
                    normal: {
                        label: {
                            show: true,
                            textStyle: {
                                color: '#333'
                            }
                        },
                        nodeStyle : {
                            brushType : 'both',
                            borderColor : 'rgba(255,215,0,0.4)',
                            borderWidth : 1
                        },
                        linkStyle: {
                            type: 'curve'
                        }
                    },
                    emphasis: {
                        label: {
                            show: false
                        },
                        nodeStyle : {
                            //r: 30
                        },
                        linkStyle : {}
                    }
                },
                useWorker: false,
                minRadius : 15,
                maxRadius : 25,
                gravity: 1.1,
                scaling: 1.1,
                roam: 'move',
                nodes:[
                    arr1
                ],
                links : [

                ]
            }
        ]
    };
    myChart.setOption(option);
    }
);
</script>

arr1值为
图片说明
arr2值为图片说明

  • 写回答

2条回答 默认 最新

  • 微风吹过的夏天2016 2016-07-18 08:29
    关注

    不是这么写的。
    因为ajax是异步,可能还没返回数据,就开始执行请求后面的代码了,图表可能获取不到数据。
    把图表相关的代码放到success:function(result){}中。
    赋值。直接引用数组名称就行了。
    nodes:arr1,
    links:arr2

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?