使用Echarts 动态更新散点图
使用Echarts 动态更新散点图
最近遇到一个作业,要求使用 Echarts 散点图,本来这个图是很容易的,官网上也有很多的教程。但是如果可以动态的更新 Echarts 散点图就更好了。我本身对 js 不感兴趣,经过不停的查找资料最终实现了这一功能。 我的项目是 Servlet + jsp + Echarts。先从 Servlet 入手,我们的项目需要传递的数值是 x 坐标和 y 坐标。我首先写了一个 JavaBean
julie.java
package JavaBean;public class julei { public julei(double x, double y) { this.x = x; this.y = y; } double x;public double getX() { return x;}public void setX(double x) { this.x = x;}public double getY() { return y;}public void setY(double y) { this.y = y;}double y;@Overridepublic String toString() { return "[" + this.x + "," + this.y + "]";}
}
Servlet中的代码,因为使用的是 json 来传递的数据,所以 json 相关的包还是少不了的。 BackServlet
package Servlet;
import JavaBean.Readtxt; import JavaBean.julei; import org.json.JSONArray; import org.json.JSONObject;
import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;
@javax.servlet.annotation.WebServlet("/BackServlet") public class BackServlet extends javax.servlet.{ protected void doPost(javax.servlet.request, javax.servlet.response) throws javax.servlet.ServletException, IOException {
List
}
var myChart = echarts.init(document.getElementById('man')); var option = { title : { text: '死亡分布图', }, xAxis: {axisTick: {//决定是否显示坐标刻度 alignWithLabel: true, show:true },}, yAxis: {}, series: [{ symbolSize: 20, data: [], type: 'scatter' }] }; myChart.setOption(option);
数据接收部分:
var num = []; var gao = new Array(); $.ajax({ type : “post”, async : true, //异步请求(同步请求将会锁住浏览器,其他操作须等请求完成才可执行) url : “BackServlet”, //请求发送到TestServlet data : {}, dataType : “json”, //返回数据形式为json
//7.请求成功后接收数据name+num两组数据 success : function(result) { //result为服务器返回的json对象 if (result) { //8.取出数据存入数组 for (var i = 0; i < result.length; i++) { gao.push([result[i].x,result[i].y]);//这一句很重要,它将数据转化为了正确的格式。 } myChart.hideLoading(); //隐藏加载动画 //9.覆盖操作-根据数据加载数据图表 myChart.setOption({ series : [ { // 根据名字对应到相应的数据 data : gao//在这里对data进行赋值。 } ] }); } }, error : function(errorMsg) { //请求失败时执行该函数 alert("图表请求数据失败!"); myChart.hideLoading(); } })
我把整个jsp都放上来了,但是里面的 css 还有 js 就不放了,重点是传数据的那一部分。
<%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8”%>
LOL数据分析