<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>ECharts</title>
</head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="height:400px"></div>
    <!-- ECharts单文件引入 -->
     <script src="dist/echarts.min.js"></script>
    <script type="text/javascript">    
                // 基于准备好的dom,初始化echarts图表
    var myChart = echarts.init(document.getElementById('main')); 
    function fetchData(cb) {
    // 通过 setTimeout 模拟异步加载
    setTimeout(function () {
        cb({
            categories: document.getElementById("myint1").value.split(","),
            data: document.getElementById("myint2").value.split(",")
        });
    }, 1000);
}// 初始 option
option = {
    title: {
        text: '异步数据加载示例'
    },
    tooltip: {},
    legend: {
        data:['销量']
    },
    xAxis: {
        data: []
    },
    yAxis: {},
    series: [{
        name: '销量',
        type: 'bar',
        data: []
    }]
};fetchData(function (data) {
    myChart.setOption({
        xAxis: {
            data: data.categories
        },
        series: [{
            // 根据名字对应到相应的系列
            name: '销量',
            data: data.data
        }]
    });
});
         myChart.setOption(option);    
    </script>
<form>
请输入横坐标数据,以英文","作为间隔:
<br>
    <input type='text' id='myint1' value="0"/> 
<br>
请输入纵坐标数据,以英文","作为开头和间隔,不同类目数据以英文";"作为间隔:
<br>
    <input type='text' id='myint2' value="0" /> 
    <input type="button" value="确认" onclick="fetchData()">
</form>
</body>
</html>

解决方案 »

  1.   

    你这样写的我没试过,不知道对不对。我跟你写的差不多,就是格式不太一样,我用的时候大概是这样的:
    假如你要改xAxis, option.xAxis[0].data =  获取的值,
    假如是series,  option.series[0].data =  获取的值 ,
    就是赋值给你要改变的那个参数,
    然后再myChart.setOption(option)
      

  2.   

    自己鼓捣出来了。。这是最终的代码<!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>ECharts</title>
    </head>
    <body>
        <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
        <div id="main" style="height:400px"></div>
        <!-- ECharts单文件引入 -->
         <script src="dist/echarts.min.js"></script>
        <script type="text/javascript">    
                    // 基于准备好的dom,初始化echarts图表
        var myChart = echarts.init(document.getElementById('main')); // 初始 option
    option = {
        title: {
            text: '异步数据加载示例'
        },
        tooltip: {},
        legend: {
            data:['销量']
        },
        xAxis: {
            data: []
        },
        yAxis: {},
        series: [{
            name: '销量',
            type: 'bar',
            data: []
        }]
    };
        function tt1(){    
        function fetchData(cb) {    // 通过 setTimeout 模拟异步加载
        setTimeout(function () {
            cb({
                categories: document.getElementById("myint1").value.split(","),
                data: document.getElementById("myint2").value.split(",")
            });
        }, 1000);
    }fetchData(function (data) {
        myChart.setOption({
            xAxis: {
                data: data.categories
            },
            series: [{
                // 根据名字对应到相应的系列
                name: '销量',
                data: data.data
            }]
        });
    });
            myChart.setOption(option);
    }         myChart.setOption(option);    
        </script>
    <form>
    请输入横坐标数据,以英文","作为间隔:
    <br>
        <input type='text' id='myint1' value="衬衫,羊毛衫,雪纺衫,裤子,高跟鞋,袜子"/> 
    <br>
    请输入纵坐标数据,以英文","作为开头和间隔,不同类目数据以英文";"作为间隔:
    <br>
        <input type='text' id='myint2' value="5, 20, 36, 10, 10, 20"/> 
        <input type="button" value="确认" onclick="tt1()">
    </form></body>
    </html>
      

  3.   

    给myChart重新赋值文本框输入的值实现刷新效果
      

  4.   

    注意,你用了这种操作之后最好调用myChart.clear();然后再myChart.setOption(option);要不然有可能会出现极其恶心的BUG