<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

        • Echarts 動(dòng)態(tài)更新散點(diǎn)圖

          2019-6-17    seo達(dá)人

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

           最近遇到一個(gè)作業(yè),要求使用 Echarts 散點(diǎn)圖,本來(lái)這個(gè)圖是很容易的,官網(wǎng)上也有很多的教程。但是如果可以動(dòng)態(tài)的更新 Echarts 散點(diǎn)圖就更好了。我本身對(duì) js 不感興趣,經(jīng)過(guò)不停的查找資料最終實(shí)現(xiàn)了這一功能。
          我的項(xiàng)目是 Servlet + jsp + Echarts。先從 Servlet 入手,我們的項(xiàng)目需要傳遞的數(shù)值是 x 坐標(biāo)和 y 坐標(biāo)。我首先寫(xiě)了一個(gè) 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中的代碼,因?yàn)槭褂玫氖?json 來(lái)傳遞的數(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();//這是我們項(xiàng)目中的一個(gè)類,不重要。
                  }catch (Exception e)
                  {
                      System.out.println(e.toString());
                  }


                  JSONArray jsonArray = new JSONArray(list);
                  System.out.println(jsonArray.toString());
                  //最重要的就是這一句,將數(shù)據(jù)發(fā)送給誰(shuí)來(lái)申請(qǐng)的位置
                  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
          正常聲明散點(diǎn)圖,只要把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, //異步請(qǐng)求(同步請(qǐng)求將會(huì)鎖住瀏覽器,其他操作須等請(qǐng)求完成才可執(zhí)行)
                      url : "BackServlet", //請(qǐng)求發(fā)送到TestServlet
                      data : {},
                      dataType : "json", //返回?cái)?shù)據(jù)形式為json

                      //7.請(qǐng)求成功后接收數(shù)據(jù)name+num兩組數(shù)據(jù)
                      success : function(result) {
                        //result為服務(wù)器返回的json對(duì)象
                        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(); //隱藏加載動(dòng)畫(huà)

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

                        }

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




          完畢

          我把整個(gè)jsp都放上來(lái)了,但是里面的 css 還有 js 就不放了,重點(diǎn)是傳數(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實(shí)例
                    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, //異步請(qǐng)求(同步請(qǐng)求將會(huì)鎖住瀏覽器,其他操作須等請(qǐng)求完成才可執(zhí)行)
                      url : "BackServlet", //請(qǐng)求發(fā)送到TestServlet
                      data : {},
                      dataType : "json", //返回?cái)?shù)據(jù)形式為json

                      //7.請(qǐng)求成功后接收數(shù)據(jù)name+num兩組數(shù)據(jù)
                      success : function(result) {
                        //result為服務(wù)器返回的json對(duì)象
                        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(); //隱藏加載動(dòng)畫(huà)

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

                        }

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






                  </script>
                </div>
                <div class="ly-triangle21"></div>
              </div>
            <!--試驗(yàn)-->

            <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>
          藍(lán)藍(lán)設(shè)計(jì)www.sdgs6788.com )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國(guó)內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 平面設(shè)計(jì)服務(wù)

          日歷

          鏈接

          個(gè)人資料

          存檔

          伊人久久大香线蕉av不变影院| 久久97精品久久久久久久不卡| 国产精品视频久久久| 久久精品中文字幕一区| 久久丫精品国产亚洲av不卡| 狠色狠色狠狠色综合久久| 国内精品久久久久久中文字幕| 99久久综合狠狠综合久久| 久久高清一级毛片| 无码伊人66久久大杳蕉网站谷歌| 亚洲AV无码久久精品蜜桃| 色综合久久精品中文字幕首页 | 免费一级做a爰片久久毛片潮| 色婷婷噜噜久久国产精品12p| 97久久国产露脸精品国产| 国产精品一区二区久久精品| 久久久久久久国产免费看| 一本一本久久A久久综合精品| 成人亚洲欧美久久久久| 日韩乱码人妻无码中文字幕久久| 香蕉久久一区二区不卡无毒影院 | 久久久99精品一区二区| 久久精品九九亚洲精品| 欧美粉嫩小泬久久久久久久| 久久发布国产伦子伦精品| 99久久夜色精品国产网站| 久久国产精品一区| 久久99国产亚洲高清观看首页| 亚洲香蕉网久久综合影视| 久久av免费天堂小草播放| 香港aa三级久久三级| 国产精品久久久久9999| 无码人妻久久一区二区三区| 久久久精品久久久久久| 国内精品久久久久久麻豆| 久久免费线看线看| 久久99毛片免费观看不卡| 国产情侣久久久久aⅴ免费| 99久久精品午夜一区二区| 亚洲熟妇无码另类久久久| 久久久无码精品亚洲日韩蜜臀浪潮|