echarts 怎样用js自定义图表数据

 我来答
育知同创教育
2017-11-01 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部

引入ECharts

echarts提供多种引入方式,请根据你的项目类型选择合适的方式:

模块化包引入

如果你熟悉模块化开发,你的项目本身就是模块化且遵循AMD规范的,那引入echarts将很简单,使用一个符合AMD规范的模块加载器,如esl.js,只需要配置好packages路径指向src即可,你将享受到图表的按需加载等最大的灵活性,由于echarts依赖底层zrender,你需要同时下载zrender到本地,可参考demo,你需要配置如下。

需要注意的是,包引入提供了开发阶段最大的灵活性,但并不适合直接上线,减少请求的文件数量是前端性能优化中最基本但很重要的规则,务必在上线时做文件的连接压缩。

//from echarts example
require.config({
packages: [
{
name: 'echarts',
location: '../../src',
main: 'echarts'
},
{
name: 'zrender',
location: '../../../zrender/src', // zrender与echarts在同一级目录
main: 'zrender'
}
]
});

模块化单文件引入(推荐)

如果你使用模块化开发但并没有自己的打包合并环境,或者说你不希望在你的项目里引入第三方库的源文件,我们建议你使用单文件引入,同模块化包引入一样,你需要熟悉模块化开发。

自2.1.8起,我们为echarts开发了专门的合并压缩工具echarts-optimizer。如你所发现的,build文件夹下已经包含了由echarts-optimizer生成的单文件:

  • dist(文件夹) : 经过合并、压缩的单文件

  • line.js : 折线图(如需折柱动态类型切换,require时还需要echarts/chart/bar)

  • bar.js : 柱形图(如需折柱动态类型切换,require时还需要echarts/chart/line)

  • scatter.js : 散点图

  • k.js : K线图

  • pie.js : 饼图(如需饼漏斗图动态类型切换,require时还需要echarts/chart/funnel)

  • radar.js : 雷达图

  • map.js : 地图

  • force.js : 力导向布局图(如需力导和弦动态类型切换,require时还需要echarts/chart/chord)

  • chord.js : 和弦图(如需力导和弦动态类型切换,require时还需要echarts/chart/force)

  • funnel.js : 漏斗图(如需饼漏斗图动态类型切换,require时还需要echarts/chart/pie)

  • gauge.js : 仪表盘

  • eventRiver.js : 事件河流图

  • treemap.js : 矩阵树图

  • venn.js : 韦恩图

  • echarts.js : 这是包含AMD加载器的echarts主文件,需要通过script最先引入

  • chart(文件夹) : echarts-optimizer通过依赖关系分析同时去除与echarts.js的重复模块后为echarts的每一个图表类型单独打包生成一个独立文件,根据应用需求可实现图表类型按需加载

  • source(文件夹) : 经过合并,但并没有压缩的单文件,内容同dist,可用于调试

  • 采用单一文件使用例子见ECharts单一文件引入,存放在example/www下,首先你需要通过script标签引入echarts主文件

  • //from echarts example

  • <body>

  •    <div id="main" style="height:400px;"></div>

  •    ...

  •    <script src="./js/echarts.js"></script>

  • </body>

  • 在主文件引入后你将获得一个AMD环境,配置require.conifg如下:

  • //from echarts example

  • <body>

  •    <div id="main" style="height:400px;"></div>

  •    ...

  •    <script src="./js/echarts.js"></script>

  •    <script type="text/javascript">

  •        require.config({

  •            paths: {

  •                echarts: './js/dist'

  •            }

  •        });

  •    </script>

  • </body>

  • require.config配置后就可以通过动态加载使用echarts

  • //from echarts example

  • <body>

  •    <div id="main" style="height:400px;"></div>

  •    ...

  •    <script src="./js/echarts.js"></script>

  •    <script type="text/javascript">

  •        require.config({

  •            paths: {

  •                echarts: './js/dist'

  •            }

  •        });

  •        require(

  •            [

  •                'echarts',

  •                'echarts/chart/line',   // 按需加载所需图表,如需动态类型切换功能,别忘了同时加载相应图表

  •                'echarts/chart/bar'

  •            ],

  •            function (ec) {

  •                var myChart = ec.init(document.getElementById('main'));

  •                var option = {

  •                    ...

  •                }

  •                myChart.setOption(option);

  •            }

  •        );

  •    </script>

  • </body>

  • 总结来说,模块化单文件引入ECharts,你需要如下4步:

  • 为ECharts准备一个具备大小(宽高)的Dom(当然可以是动态生成的)

  • 通过script标签引入echarts主文件

  • 为模块加载器配置echarts的路径,从当前页面链接到echarts.js所在目录,见上述说明

  • 动态加载echarts及所需图表然后在回调函数中开始使用(容我罗嗦一句,当你确保同一页面已经加载过echarts,再使用时直接require('echarts').init(dom)就行)

  • 详见入门教程 ( Getting started ) »

    标签式单文件引入

    自1.3.5开始,ECharts提供标签式引入。如果你的项目本身并不是基于模块化开发的,或者是基于CMD规范(如使用的是seajs),那么引入基于AMD模块化的echarts可能并不方便,我们建议你采用srcipt标签式引入,忘掉require。Srcipt标签引入echarts后将可以直接使用两个全局的命名空间:echarts,zrender,可参考ECharts标签式引入,需要注意的是excanvas依赖body标签插入Canvas节点去判断Canvas的支持,如果你把引用echarts的script标签放置head内在IE8-的浏览器中会出现报错,解决的办法就是把标签移动到body内(后)。

    标签式引入环境中,常用模块的引用可通过命名空间直取,同模块化下的路径结构,如:
    echarts.config = require('echarts/config'), zrender.tool.color = require('zrender/tool/color')

  • //from echarts example

  • <body>

  •    <div id="main" style="height:400px;"></div>

  •    ...

  •    <script src="example/www2/js/dist/echarts-all.js"></script>

  •    <script>

  •        var myChart = echarts.init(document.getElementById('main'));

  •        var option = {

  •            ...

  •        }

  •        myChart.setOption(option);

  •    </script>

  • </body>

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式