echarts 的数据如何动态地和后端交互? 比较急,求助

2016-02-19 15:46:09 +08:00
 anonymoustian

比如说我有一个 echarts 的地图,地图是这个:
http://echarts.baidu.com/echarts2/doc/example/map4.html
我初始化的时候 echarts 的 data:[]是为空的, 但是我在页面上想做到这样的效果:

单击 2010 年按钮,就会有 2010 年的数据,地图也是 2010 年的人口地图
单击 2011 年按钮,就会有 2011 年的数据 。。。。。。

也就是说, echarts 在初始化以后,如何动态地与后端服务器进行交互来改变 echarts 的 data?

8689 次点击
所在节点    JavaScript
9 条回复
lincanbin
2016-02-19 15:52:16 +08:00
在 Ajax 回调中改变 option 中 data 的值,然后 setOption 刷新。
anonymoustian
2016-02-19 16:05:40 +08:00
@lincanbin 请问如何改变 option 中 data 的值?
anonymoustian
2016-02-19 16:08:23 +08:00
@lincanbin 我现在只想到重绘这个 echarts
lincanbin
2016-02-19 16:09:39 +08:00
@anonymoustian 如果你的 option 是一个全局变量……
这么写可能有点 dirty ,但是挺方便。

我不太确定 EC 里是否有对应的 API ,你可以查询一下 documentation 。
lincanbin
2016-02-19 16:13:47 +08:00
@anonymoustian 我第一个回复就告诉你了。
你重新 init 后 setOption(option, true)就是重绘。
anonymoustian
2016-02-19 16:14:33 +08:00
@lincanbin 好的 谢谢您
WhoMercy
2016-02-19 16:18:21 +08:00
你可以看一下这个官方示例: http://echarts.baidu.com/gallery/editor.html?c=dynamic-data

官方的 data 是随机生成的,你需要换成 ajax 轮询交互后台获取数据

然后在
setInterval(function (){}
这个方法里设置
option.xAxis[0].data.shift();
option.xAxis[0].data.push(axisData);
option.xAxis[1].data.shift();
option.xAxis[1].data.push(app.count++);

myChart.setOption(option);
更改你需要的坐标和数据

这样就能实现动态更新数据。
whahuzhihao
2016-02-19 16:19:31 +08:00
ajax 重新设置 option 就行了
echarts 这点做的比 highcharts 简单多了 不过新版本还是好多 bug
zxx1130
2016-02-25 10:49:33 +08:00
ajax 异步获取数据以后,把值重新赋给 option 里面的参数,再 setOption 就 ok 了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/257653

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX