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

    2019-6-17    seo達人

    如果您想訂閱本博客內(nèi)容,每天自動發(fā)到您的郵箱中, 請點這里

     最近遇到一個作業(yè),要求使用 Echarts 散點圖,本來這個圖是很容易的,官網(wǎng)上也有很多的教程。但是如果可以動態(tài)的更新 Echarts 散點圖就更好了。我本身對 js 不感興趣,經(jīng)過不停的查找資料最終實現(xiàn)了這一功能。
    我的項目是 Servlet + jsp + Echarts。先從 Servlet 入手,我們的項目需要傳遞的數(shù)值是 x 坐標(biāo)和 y 坐標(biāo)。我首先寫了一個 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 來傳遞的數(shù)據(jù),所以 json 相關(guān)的包還是少不了的。
    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());
            //最重要的就是這一句,將數(shù)據(jù)發(fā)送給誰來申請的位置
            response.getWriter().write(jsonArray.toString());


        }

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

        }
    }


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

      var myChart = echarts.init(document.getElementById('man'));
              var option = {
                title : {
                  text: '死亡分布圖',
                },
                xAxis: {axisTick: {//決定是否顯示坐標(biāo)刻度
                    alignWithLabel: true,
                    show:true
                  },},
                yAxis: {},
                series: [{
                  symbolSize: 20,
                  data: [],
                  type: 'scatter'
                }]
              };
              myChart.setOption(option);

    數(shù)據(jù)接收部分:

    var num = [];
              var gao = new Array();
              $.ajax({
                type : "post",
                async : true, //異步請求(同步請求將會鎖住瀏覽器,其他操作須等請求完成才可執(zhí)行)
                url : "BackServlet", //請求發(fā)送到TestServlet
                data : {},
                dataType : "json", //返回數(shù)據(jù)形式為json

                //7.請求成功后接收數(shù)據(jù)name+num兩組數(shù)據(jù)
                success : function(result) {
                  //result為服務(wù)器返回的json對象
                  if (result) {
                    //8.取出數(shù)據(jù)存入數(shù)組

                    for (var i = 0; i < result.length; i++) {

                      gao.push([result[i].x,result[i].y]);//這一句很重要,它將數(shù)據(jù)轉(zhuǎn)化為了正確的格式。

                    }

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

                    //9.覆蓋操作-根據(jù)數(shù)據(jù)加載數(shù)據(jù)圖表
                    myChart.setOption({
                      series : [ {
                        // 根據(jù)名字對應(yīng)到相應(yīng)的數(shù)據(jù)
                        data : gao//在這里對data進行賦值。
                      } ]
                    });

                  }

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




    完畢

    我把整個jsp都放上來了,但是里面的 css 還有 js 就不放了,重點是傳數(shù)據(jù)的那一部分。

    <%@ 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數(shù)據(jù)分析</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">
              // 基于準(zhǔn)備好的dom,初始化echarts實例
              var value=[];
              $.ajaxSettings.async=false;
              var myChart = echarts.init(document.getElementById('man'));
              var option = {
                title : {
                  text: '死亡分布圖',
                },
                xAxis: {axisTick: {//決定是否顯示坐標(biāo)刻度
                    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, //異步請求(同步請求將會鎖住瀏覽器,其他操作須等請求完成才可執(zhí)行)
                url : "BackServlet", //請求發(fā)送到TestServlet
                data : {},
                dataType : "json", //返回數(shù)據(jù)形式為json

                //7.請求成功后接收數(shù)據(jù)name+num兩組數(shù)據(jù)
                success : function(result) {
                  //result為服務(wù)器返回的json對象
                  if (result) {
                    //8.取出數(shù)據(jù)存入數(shù)組

                    for (var i = 0; i < result.length; i++) {
                      gao.push([result[i].x,result[i].y]);
                    }

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

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

                  }

                },
                error : function(errorMsg) {
                  //請求失敗時執(zhí)行該函數(shù)
                  alert("圖表請求數(shù)據(jù)失敗!");
                  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>
    藍藍設(shè)計www.skdbbs.com )是一家專注而深入的界面設(shè)計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計、BS界面設(shè)計 、 cs界面設(shè)計 、 ipad界面設(shè)計 、 包裝設(shè)計 、 圖標(biāo)定制 、 用戶體驗 、交互設(shè)計、 網(wǎng)站建設(shè) 平面設(shè)計服務(wù)

    日歷

    鏈接

    個人資料

    藍藍設(shè)計的小編 http://www.skdbbs.com

    存檔

    主站蜘蛛池模板: 无码日韩精品一区二区三区免费| 国产精品熟女高潮视频| 蜜芽亚洲av无码精品色午夜| 91精品国产91久久| 国产精品成人A区在线观看 | 日本熟妇亚洲欧美精品区| 精品国产欧美另类一区| 久久精品水蜜桃av综合天堂| 欧美XXXX黑人又粗又长精品| 国产精品99爱免费视频| 国内精品免费视频精选在线观看| 精品国产福利一区二区| 亚洲精品国产av成拍色拍| 青春草无码精品视频在线观 | 亚洲精品无码不卡在线播放HE| 国产精品制服丝袜亚洲欧美| 久久99热狠狠色精品一区| 国产精品免费观看| 91精品国产综合久久婷婷| 成人精品一区二区三区中文字幕| 乱色精品无码一区二区国产盗| 亚洲日韩国产AV无码无码精品 | 久久九九亚洲精品| 国产精品成人观看视频免费| 国产精品国产三级国产AV主播| 久久亚洲精精品中文字幕| 亚洲AV永久无码精品网站在线观看| 合区精品中文字幕| 四虎影院国产精品| 亚洲国产小视频精品久久久三级 | 国产精品污视频| 国产精品素人搭讪在线播放 | 国产天天综合永久精品日| www夜片内射视频日韩精品成人| 久久91精品国产91久久户| 精品在线免费观看| 亚洲国产成人精品不卡青青草原| 久久99精品国产99久久6男男| 91在线视频精品| 久久99精品国产| 国产2021久久精品|