<strike id="cy2gs"><menu id="cy2gs"></menu></strike>
  • <del id="cy2gs"><dfn id="cy2gs"></dfn></del>
  • Echarts 動態更新散點圖

    2019-6-17    seo達人

    如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

     最近遇到一個作業,要求使用 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;

        @Override
        public 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.http.HttpServlet {
        protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {



            List<julei> list = new ArrayList<>();
            try {
                list = Readtxt.out();//這是我們項目中的一個類,不重要。
            }catch (Exception e)
            {
                System.out.println(e.toString());
            }


            JSONArray jsonArray = new JSONArray(list);
            System.out.println(jsonArray.toString());
            //最重要的就是這一句,將數據發送給誰來申請的位置
            response.getWriter().write(jsonArray.toString());


        }

        protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {

        }
    }


    好了,現在到了最重要的前端方面了。
    index.jsp
    正常聲明散點圖,只要把data聲明為空就好。

      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"%>
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <title>LOL數據分析</title>
      <script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
      <script type="text/javascript" src='js/echarts.js'></script>
      <link rel="stylesheet" href="css/jquery.fullPage.css">
      <link rel="stylesheet" href="css/style.css">
      <link rel="icon" >
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <script src="https://code.highcharts.com.cn/highcharts/highcharts.js"></script>
      <script src="https://code.highcharts.com.cn/highcharts/modules/exporting.js"></script>
      <script src="https://img.hcharts.cn/highcharts-plugins/highcharts-zh_CN.js"></script>
    </head>

    <body>
    <div class="bgcolor">
      <div style="z-index:100;" id="dowebok">
        <!--第一屏-->

        <div class="section">
          <div class="ly-box01">
            <img class="ly-img01" src="img/logol.png" style="width:100%;height:100%">

          </div>
        </div>

     

        <!--第三屏-->

        <div class="section">
          <div class="timeline"></div>
          <div class="timepoint21"></div>
          <div class="ly-box11">
            <div id="man" style=" width: 600px;height: 500px;"></div>

            <script type="text/javascript">
              // 基于準備好的dom,初始化echarts實例
              var value=[];
              $.ajaxSettings.async=false;
              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(4);
              $.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]);
                    }

                //  document.write(gao);
                    myChart.hideLoading(); //隱藏加載動畫

                    //9.覆蓋操作-根據數據加載數據圖表
                    myChart.setOption({
                      series : [ {
                        // 根據名字對應到相應的數據
                        data : gao
                      } ]
                    });

                  }

                },
                error : function(errorMsg) {
                  //請求失敗時執行該函數
                  alert("圖表請求數據失敗!");
                  myChart.hideLoading();
                }
              })






            </script>
          </div>
          <div class="ly-triangle21"></div>
        </div>
      <!--試驗-->

      <ul class="bg-bubbles">
        <li><img src="img/logol.png" style="width:100%;height:100%"></li>
        <li><img src="img/logol.png" style="width:100%;height:100%"></li>
        <li><img src="img/logol.png" style="width:100%;height:100%"></li>
        <li><img src="img/logol.png" style="width:100%;height:100%"></li>
        <li><img src="img/logol.png" style="width:100%;height:100%"></li>
        <li><img src="img/logol.png" style="width:100%;height:100%"></li>
        <li><img src="img/logol.png" style="width:100%;height:100%"></li>
        <li><img src="img/logol.png" style="width:100%;height:100%"></li>
        <li><img src="img/logol.png" style="width:100%;height:100%"></li>
        <li><img src="img/logol.png" style="width:100%;height:100%"></li>
      </ul>

    </div>

    <audio src="music/1.mp3" autoplay="autoplay" loop="loop" />
    <script src="js/jquery-1.8.3.min.js"></script>
    <script src="js/jquery.fullPage.min.js"></script>
    <script src="js/diy.js"></script>
    </body>
    </html>
    藍藍設計www.skdbbs.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

    日歷

    鏈接

    個人資料

    藍藍設計的小編 http://www.skdbbs.com

    存檔

    主站蜘蛛池模板: 欧美精品播放| 精品国产青草久久久久福利 | 国产精品亚洲片在线va| 男人的天堂精品国产一区| 久久99久久99小草精品免视看| 亚洲av无码乱码国产精品| 精品乱子伦一区二区三区高清免费播放 | 无码人妻精品一区二区三区夜夜嗨| 国产精品成| 日韩欧国产精品一区综合无码| 婷婷精品国产亚洲AV麻豆不片| 久久性精品| 精品国产不卡一区二区三区| 日韩精品在线看| 免费视频精品一区二区三区| 99久久99久久久精品齐齐| 亚洲热线99精品视频| 青青热久久国产久精品 | 久久精品国产69国产精品亚洲| 精品国产第一国产综合精品| 亚洲国产精品一区二区成人片国内| 久久久99精品一区二区| 国产精品小视频免费无限app| 国产成人精品久久综合| 久久久久免费精品国产| 国产精品一二三区| 91老司机深夜福利精品视频在线观看 | 精品久久久久久无码中文字幕| 91精品国产高清久久久久久91| 久久精品国产99国产精品澳门| 99精品视频在线观看re| 国产午夜精品一区二区三区 | 亚洲日韩欧美制服精品二区| 久久夜色撩人精品国产小说| 黑人巨大精品欧美一区二区| 成人国产精品一区二区视频| 国产成人精品一区二三区在线观看| 亚洲自偷自偷精品| 91午夜精品亚洲一区二区三区| 亚洲精品线在线观看| 国产精品免费视频观看拍拍 |