精华内容
下载资源
问答
  • 主要介绍了Java web数据可视化实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 手把手教你Web数据可视化平台搭建

    万次阅读 2017-03-07 18:27:00
    手把手教你Web数据可视化平台搭建

    原文链接:http://www.jianshu.com/p/ad1a49375da4 ,源代码请访问原文


    PS.想获取全部源代码或者有不懂的问题的感兴趣的同学,请访问原文~


    一、项目展示

    这个Web数据可视化平台的效果如下(没加样式,主要侧重功能)


    效果演示

    这个数据可视化Demo能够实现如下功能:

    1.csv文件上传(其他格式文件也可以)

    2.自定义想要显示的数据

    2.nodejs搭建服务器,解析csv文件数据

    3.使用Highcharts进行数据可视化

    4.关键参数计算并展示

    二、实现思路和过程

    1.实现csv文件上传

    (1)前台部分

    在这个demo中,使用了formData和ajax来完成前端文件的上传。formData是一种组件表单的方式,下面的例子就是用formData来初始化了一个用来提交文件的表单。


    html代码

    js代码

    通过上面的代码,我们就可以初始化一个包含两个字段的表单,分别是要上传的文件和要解析的属性。这里使用FormData()构造一个formData对象,传入一个表单初始化。这样,这个生成的formData对象中,就包含了要上传的字段。同时要注意,指定form标签的enctype属性为multipart/form-data,表单才能处理文件类型的字段。

    (2)服务器端处理上传文件

    服务器端使用nodejs搭建,这里使用一个叫做multer的nodejs模块进行文件处理。multer可以处理文件上传,它获取前端上传的文件,并将文件保存到服务器端指定目录。下面是使用multer处理文件的代码示例。


    multer处理数据代码

    上面的代码中,upload使用multer指定了上传文件后保存的路径,这里会将所有上传的文件保存在uploads目录下。multer会为req对象添加file属性,这个file属性就包括了文件的各种信息,包括上传路径、文件名、文件类型等。而表单中的其他字段,汇报存在req.body中(使用bodyParser)。

    2.csv文件解析

    对于csv的文件解析,我们使用nodejs中的csvtojson模块,这个模块非常方便使用。如果想解析电子表格类型的文件,也可以使用nodejs中的xlsx模块实现。调用csvtojson模块中的方法,对上传的文件req.file.path进行解析(req.file.path,是通过multer上传的文件路径,可以直接访问到上传的文件)即可。

    另外,我们还想显示指定属性的数据(即展现csv文件中特定的列)。这种功能,可以通过req.body获取前台的对应字段,然后使用csvtojson模块中的方法实现。在我制作的demo中,对应属性的获取原理是,用户可输入多个列名,用逗号分隔开;服务器端使用js的split方法对传入内容进行解析,形成一个目标列名组成的数组,再使用csvtojson模块读取对应数组。

    3.使用Highcharts展示数据

    Highcharts是一个非常实用的Web数据可视化框架。当我们对文件完成解析,获取完对应的数据后,就可以使用Highcharts进行图标绘制了。一个基本的Highcharts图标绘制代码如下。


    Highcharts基本配置

    通过上面的代码可以了解Highcharts框架的基本使用方法。这里使用Highcharts.Chart()方法初始化一个图标,这个方法需要传入一些配置项。配置项配置包括渲染目标、标题等,还可以配置坐标轴、图例、提示框等许多内容,这是Highcharts的灵活之处。

    其中,series配置数据内容,这是一个对象数组,每一个对象对应一个数据列。如上面的例子中,定义了一个名为test的数据列,并指定了数据内容。

    在这个demo中,我们可以在ajax中的success回调函数中获取到返回的数据,然后通过修改配置项中的series属性,来为Highcharts图表动态注入数据。

    4.数据分析

    可以为我们的demo中添加一些数据分析功能,例如动态显示所有每一个数据列的方差、平均值等。

    展开全文
  • 本文针对Web 数字地球上临近空间数据可视化问题,从数据组织方法角度展开研究。根据临近空间数据的特点,结合视频压缩原理,我们提出将临近空间数据进行分解、插值和色彩空间变换处理形成图像后,选取适宜视频压缩...
  • 数据可视化技术可借助人脑的视觉思维能力,帮助人们理解大量的数据信息,发现数据中隐含的规律,从而提高数据的使用效率。面对大数据深奥的面貌,如何才能让大型数据集变得亲切和易于理解,可视化无疑是最有效的途径...
  • 网络可视化 WAFI 的 Web 数据可视化主页
  • web数据可视化主要是借助于图形化手段,清晰有效地传达与沟通信息,它与信息图形、信息可视化、科学可视化以及统计图形密切相关。虽然web数据可视化会让人联想到商业智能,但它通常比大家所想象的更具创意并且丰富...

    web数据可视化主要是借助于图形化手段,清晰有效地传达与沟通信息,它与信息图形、信息可视化、科学可视化以及统计图形密切相关。虽然web数据可视化会让人联想到商业智能,但它通常比大家所想象的更具创意并且丰富多彩。想要清晰且美观地在web上展示大量数据,就得掌握几大要点。下面就介绍其中最重要的3个要点,一起来看看吧~~

    一、web数据可视化工具选用


    现如今的web数据可视化工具已经不需要大家学习复杂的代码公式,也有了更多可选择的图表样式,更重要的是,操作越来越简捷方便了。很多工作人员都会有对处理数据的恐惧,害怕学不会这类可视化工具,但是科技在发展,尤其是商业智能领域。选用怎么样的web数据可视化工具就成为需要关注的问题。
    比较推荐的还是市场上占有率最高的FineBI,它主打的就是让业务用户以简单的方式观察数据,发现问题。它所提供的功能如智能图表推荐,能根据用户当前分析的字段种类和个数,自动推荐合适的图表类型。对于初级用户来说,更进一步降低实现数据可视化门槛。

    二、web数据可视化的用户群体


    可视化能用来揭示模式,提供上下文,并描述数据内的关系。虽然设计者对给定数据集中的模式和关系没有影响,但是他可以根据受众的需要选择显示多少数据,以及提供什么样的上下文。毕竟,就像任何其他产品一样,如果观看者无法使用它,可视化是没有意义的。
    FineBI为不同层次的企业人员都提供了有效可行的web数据可视化通道,并且企业人员能通过这些数据图形来辅助决策、提升业务。


    三、用视觉突显关键信息


    视觉显著性是web数据可视化的有力工具。它可以引导用户的注意力停在一个重要信息上,以防止信息过度接收。这要求在设计时应该增强和突出数据元素,减少和弱化非数据元素。可以用温暖、高饱和色彩来突出关键数据点,用冷、低饱和的颜色把不重要的信息设为背景。
    FineBI在仪表板配色美化方面,内置提供了多种预制主题的经典主题,并且可以一键美化。

     

    展开全文
  • 数据可视化前言:https://blog.csdn.net/diviner_s/article/details/115933789 Apache Echarts简介:https://blog.csdn.net/diviner_s/article/details/115934089 项目最终效果图: 此篇博客为自己学习pink老师的...

    数据可视化前言:https://blog.csdn.net/diviner_s/article/details/115933789
    Apache Echarts简介:https://blog.csdn.net/diviner_s/article/details/115934089
    项目最终效果图:
    在这里插入图片描述
    此篇博客为自己学习pink老师的课后完成的项目的总结与记录,仅供交流参考。版权所有,转载请标注原作者!
    使用echarts技术做的可视图,此外其项目包含 的技术有html、css、js、jquerry、ajax、websocket、koa等。

    写到这里我们的系列文也到了前端最后一个界面,做左侧第一个柱状图跳转子界面。

    预告:下一篇开始就我们将前后端进行分离以及实现前后端交互。

    实现数据动态获取

    目的是使用同一个界面图表模板,通过点击不同的元素实现传输对应的不同数据进行展示。

    左侧跳转界面不同数据展示
    在这里插入图片描述
    右侧跳转界面不同数据展示
    在这里插入图片描述

    cookie存储信息

    Cookie 用于存储 web 页面的用户信息。在这里我们用cookie存储首页面点击柱状图元素下标
    在这里插入图片描述

    如上图,我们继续看针对左上柱状图的每个柱状体都对应着不同下标,因此我们使用cookie暂时存储下标。

    cookie创建

    • 创建cookie:document.cookie = params.dataIndex默认情况下,cookie 在浏览器关闭时删除。
      我们现在首页左上柱状图试验一下:
      这段代码位置:
      在这里插入图片描述
      我们使用如下代码,打印获取的dataIndex和cookie值:

            //4.点击柱状图跳转
            myChart1.on('click', function (params) {
              console.log('dataIndex: ' + params.dataIndex);
              document.cookie = params.dataIndex;
              console.log('cookie: ' + document.cookie);
              //cookie传递params的数组下标
              //获取统计数据
              
      		//先将跳转界面注释掉			
              //  window.location.href = 'childpage.html';
            });
      

    点击不同柱体打印的就是不同cookie值,看右侧打印情况:
    在这里插入图片描述
    因此我们已经将对应index存入cookie,接下来就是读取cookie。

    cookie读取

    在 JavaScript 中, 可以使用var x = document.cookie来读取 cookie。

    注意:document.cookie 将以字符串的方式返回所有的 cookie,类型格式: cookie1=value; cookie2=value; cookie3=value;

    返回格式是字符串+;返回,因此我们使用分隔符取“‘;”前的数。

    var jsonstr = document.cookie.split(';')[0];

    在这里插入图片描述

    子页面一

    跳转动画展示
    在这里插入图片描述
    子页面展示
    在这里插入图片描述
    子页面给出两个图表,分别是关于行业分布的柱状图和关于行业班级比例的扇形图。

    纵向柱状图

    图表还不会配置的来这里!,后面直接放代码。
    数据来源:采用Ajax的get(url,function())请求获取数据
    这里需要注意的是:function是回调函数需要获取数据后存放在ret后,在done中进行数据的解析。

    (function () {
    	// 使用cookie存点击的数据
      var jsonstr = document.cookie.split(';')[0];
    
      console.log("cookie:" + jsonstr);
      
      //ajax的get请求获取数据
      $.get("data/case0", function (ret, status) {
    
        var job = []
        var number = []
        console.log("data长度:" + ret[jsonstr].length)
        console.log(ret)
        var maxn = 0;
        for (var i = 0; i < ret[jsonstr].length; i++) {
          var name = ret[jsonstr][i].name
          var num = ret[jsonstr][i].number
          if (maxn < num) maxn = num
          console.log(name + " " + num + "  ==== ")
          job.push(name)
          number.push(num)
        }
        // console.log(job)
        // console.log(number)
    
        var mCharts1 = echarts.init(document.getElementById("div1"))
        option1 = {
          grid: { containLabel: true },
          xAxis: {
            type: 'value',
            axisLabel: {
              color: '#fff',
              fontSize: "15"
            },
            axisLine: {
              lineStyle: {
                type: 'solid',
                color: '#fff',//左边线的颜色
                //width:'1'
              }
            }
          },
          yAxis: {
            name: '职业',
            type: 'category',
            axisLabel: {
              //color: "rgba(255,255,255,.6) ",
              color: '#fff',
              fontSize: "20"
            },
            axisLine: {
              lineStyle: {
                type: 'solid',
                color: '#fff',//左边线的颜色
                //width:'1'
              }
            },
            data: job,
          },
          visualMap: { //控制颜色渐变
            orient: ' ',
            left: 'center',
            min: 1,
            max: maxn,
            textStyle: {
              fontSize: 20,
              color: '#fff'
            },
            text: ['', '就业人数:'],
            // Map the score column to color
            dimension: 0,
            inRange: {
              color: ['#65B581', '#FFCE34', '#FD665F']
            }
          },
          
          series: [{
            data: number,
            type: 'bar',
            barWidth: "50%",
            label: {
              show: false
            },
            itemStyle: {
              // 修改柱子圆角
              barBorderRadius: 10
            }
          }],
        };
    
        mCharts1.setOption(option1)
    
      });
    })();
    

    环形图

    (function () {
      var jsonstr = document.cookie.split(';')[0];
    
      //console.log("cookie2:" + jsonstr);
    
      $.get("http://127.0.0.1:8888/api/banjibili", function (ret, status) {
    
        console.log(ret)
        console.log(ret[jsonstr])
        var mCharts2 = echarts.init(document.getElementById("div2"))
        option2 = {
          tooltip: {
            trigger: 'item',
            formatter: '{b} : {c} ({d}%)'
          },
          color: [
            "#FE642E",
            "#FE9A2E",
            "#F4FA58",
            "#ACFA58",
            "#01DFD7",
            "#0096ff",
            "#8258FA",
            "#FE2E9A"
          ],
          legend: {
            top: "bottom",
            left: "center",
            //bottom: '0',
            textStyle: {
              color: '#fff',
              fontSize: 18
            }
          },
          series: [
            {
              type: 'pie',
              radius: ['40%', '70%'],
              avoidLabelOverlap: false,
              label: {
                show: false,
                position: 'center',
              },
              emphasis: {
                label: {
                  show: true,
                  fontSize: '30',
                  fontWeight: 'bold'
                }
              },
              labelLine: {
                show: false
              },
              data: ret[jsonstr]
            }
          ]
        };
        mCharts2.setOption(option2);
    
        /*******高亮显示开始**********/
        var _this2 = this
        var isSet2 = true // 为了做判断:当鼠标移动上去的时候,自动高亮就被取消
        var currentIndex2 = 0
    
        // 2、鼠标移动上去的时候的高亮动画
        mCharts2.on('mouseover', function (param) {
          isSet2 = false
          clearInterval(_this2.startCharts)
          // 取消之前高亮的图形
          mCharts2.dispatchAction({
            type: 'downplay',
            seriesIndex: 0,
            dataIndex: currentIndex2
          })
          // 高亮当前图形
          mCharts2.dispatchAction({
            type: 'highlight',
            seriesIndex: 0,
            dataIndex: param.dataIndex
          })
          // 显示 tooltip
          mCharts2.dispatchAction({
            type: 'showTip',
            seriesIndex: 0,
            dataIndex: param.dataIndex
          })
        })
        // 3、自动高亮展示
        chartHover = function () {
          var dataLen = mCharts2.getOption().series[0].data.length //计算总的数组长度
          // 取消之前高亮的图形
          mCharts2.dispatchAction({
            type: 'downplay',
            seriesIndex: 0,
            dataIndex: currentIndex2
          })
          currentIndex2 = (currentIndex2 + 1) % dataLen
          // 高亮当前图形
          mCharts2.dispatchAction({
            type: 'highlight',
            seriesIndex: 0,
            dataIndex: currentIndex2
          })
          // 显示 tooltip
          mCharts2.dispatchAction({
            type: 'showTip',
            seriesIndex: 0,
            dataIndex: currentIndex2
          })
        }
        _this2.startCharts = setInterval(chartHover, 1000)
        // 4、鼠标移出之后,恢复自动高亮
        mCharts2.on('mouseout', function (param) {
          if (!isSet2) {
            _this2.startCharts = setInterval(chartHover, 1000)
            isSet2 = true
          }
        })
        /*******高亮显示结束**********/
    
    
      });
    })();
    
    

    子页面二

    跳转动画展示
    在这里插入图片描述
    子页面展示

    在这里插入图片描述

    柱状图

    (function () {
      //不同就业去向
      var jsonstr = document.cookie.split(';')[0];
      console.log("cookie:" + jsonstr);
      $.get("http://127.0.0.1:8888/api/nannv", function (ret, status) {
    
        var data1 = ret[jsonstr].data;
        var myChart = echarts.init(document.getElementById("div1"));
        var option = {
          legend: {
            bottom: "0%",
            textStyle: {
              color: "write"
            }
          },
          tooltip: {},
          dataset: {
            dimensions: ['product', '男', '女'],
            source: data1
          },
    
          xAxis: {
            type: 'category',
            axisLabel: {
              color: '#fff',
              fontSize: "20"
            },
            axisLine: {
              lineStyle: {
                type: 'solid',
                color: '#fff',
              }
            },
          },
          yAxis: {
            name: "人数",
            axisLabel: {
              color: '#fff',
              fontSize: "20"
            },
            axisLine: {
              lineStyle: {
                type: 'solid',
                color: '#fff',
              }
            },
          },
          barWidth: "30%",
          series: [
            {
              type: 'bar', itemStyle: {
                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                  offset: 0,
                  color: 'rgba(0, 221, 255)'
                }, {
                  offset: 1,
                  color: 'rgba(77, 119, 255)'
                }])
              },
              label: {
                show: true,
                position: 'top',
                color: "white",
                fontSize: 20
              },
              barGap: "20%"
            },
            {
              type: 'bar', color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                offset: 0,
                color: 'rgba(255, 0, 135)'
              }, {
                offset: 1,
                color: 'rgba(135, 0, 157)'
              }]),
              label: {
                show: true,
                position: 'top',
                color: "white",
                fontSize: 20
              },
            },
    
          ]
        };
        myChart.setOption(option);
      })
    })();
    

    饼图

    (function () {
      //班级男生人数
      var jsonstr = document.cookie.split(';')[0];
      $.get("http://127.0.0.1:8888/api/nannv", function (ret, status) {
        var data1 = ret[jsonstr].nan;
        //班级女生人数
        var data2 = ret[jsonstr].nv;
        var myChart = echarts.init(document.getElementById('div2'));
        var option;
        option = {
          tooltip: {
            trigger: 'item',
            formatter: function (params) {
              // do some thing
              console.log(params)
              return params.name + ":" + params.value + "人"
            }
          },
          // legend: {
          //   orient: 'vertical',
          //   left: 'left',
          //   bottom: "0%",
          //   itemWidth: 30,
          //   itemHeight: 30,
          //   textStyle: {
          //     color: "write"
          //   }
          // },
          series: [
            {
              type: 'pie',
              radius: '60%',
              itemStyle: {
                normal: {
                  label: {
                    fontSize: 20,
                    show: true,
                    position: [0, -20],
                    color: '#ddd',
                    formatter: function (params) {
                      var percent = 0;
                      var total = 0;
                      total += data1 + data2;
                      percent = ((params.value / total) * 100).toFixed(0);
                      if (params.name !== '') {
                        return params.name + ':' + percent + '%';
                      } else {
                        return '';
                      }
                    },
                  },
                  labelLine: {
                    length: 15,
                    length2: 10,
                    show: true,
                    color: '#00ffff',
                  },
                },
              },
    
              data: [
                {
                  value: data1, name: '男',
                  itemStyle: {
                    color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                      offset: 0,
                      color: 'rgba(0, 221, 255)'
                    }, {
                      offset: 1,
                      color: 'rgba(77, 119, 255)'
                    }])
                  }
                },
                {
                  value: data2, name: '女',
                  itemStyle: {
                    color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                      offset: 0,
                      color: 'rgba(255, 0, 135)'
                    }, {
                      offset: 1,
                      color: 'rgba(135, 0, 157)'
                    }])
                  }
                }
              ],
              emphasis: {
                itemStyle: {
                  shadowBlur: 10,
                  shadowOffsetX: 0,
                  shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
              }
            }
          ]
        };
        myChart.setOption(option)
    
      })
    })()
    

    CSS界面布局

    两个子界面使用的同一个CSS布局

    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }
    li {
      list-style: none;
    }
    /* 声明字体*/
    @font-face {
      font-family: electronicFont;
      src: url(../font/DS-DIGIT.TTF);
    }
    body {
      background: url(../images/bg.jpg) no-repeat top center;
      line-height: 1.15;
      overflow:hidden;
    }
    header {
      position: relative;
      height: 1.25rem;
      background: url(../images/head_bg.png) no-repeat;
      background-size: 100% 100%;
    }
    header h1 {
      font-size: 0.475rem;
      color: #fff;
      text-align: center;
      line-height: 1rem;
    }
    header .showTime {
      position: absolute;
      right: 0.375rem;
      top: 0;
      line-height: 0.9375rem;
      color: rgba(255, 255, 255, 0.7);
      font-size: 0.25rem;
    }
    .mainbox {
      display: flex;
      min-width: 1024px;
      max-width: 1920px;
      margin: 0 auto;
      padding: 1.4rem 0.125rem 0;
    }
    .mainbox .column {
      flex: 5;
    }
    .mainbox .column:nth-child(2) {
      flex: 3;
      margin: 0 0.125rem 0.1875rem;
      overflow: hidden;
    }
    .mainbox .panel {
      position: relative;
      height: 9rem;
      padding: 0 0.1875rem 0.1rem 0.5rem;
      border: 1px solid rgba(25, 186, 139, 0.17);
      margin-bottom: 0.1875rem;
      background: url(../images/line.png) rgba(255, 255, 255, 0.03);
    }
    .mainbox .panel::before {
      position: absolute;
      top: 0;
      left: 0;
      width: 10px;
      height: 10px;
      border-left: 2px solid #02a6b5;
      border-top: 2px solid #02a6b5;
      content: "";
    }
    .mainbox .panel::after {
      position: absolute;
      top: 0;
      right: 0;
      width: 10px;
      height: 10px;
      border-right: 2px solid #02a6b5;
      border-top: 2px solid #02a6b5;
      content: "";
    }
    .mainbox .panel .panel-footer {
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
    }
    .mainbox .panel .panel-footer::before {
      position: absolute;
      left: 0;
      bottom: 0;
      width: 10px;
      height: 10px;
      border-left: 2px solid #02a6b5;
      border-bottom: 2px solid #02a6b5;
      content: "";
    }
    .mainbox .panel .panel-footer::after {
      position: absolute;
      bottom: 0;
      right: 0;
      width: 10px;
      height: 10px;
      border-right: 2px solid #02a6b5;
      border-bottom: 2px solid #02a6b5;
      content: "";
    }
    .mainbox .panel h2 {
      height: 0.6rem;
      color: #fff;
      line-height: 1.6rem;
      text-align: center;
      font-size: 0.45rem;
      font-weight: 400;
    }
    
    .mainbox .panel .chart {
      height: 8rem;
    }
    
    
    


    有不懂的可以私聊我,有需要echarts.js、jQuery.js、echarts-gl.js开源库。
    评论区留下邮箱,我看到都会发给你的。


    项目源码我放在我的分享的资源里了,需要请自取

    展开全文
  • web数据可视化大数据分析领导驾驶舱源码 统计报表UI大屏前端H5页
  • 数据可视化中不仅仅需要对历史数据进行展示,常常还需要对实时数据进行处理、展示并更新数据库 我采用的是

    数据可视化中不仅仅需要对历史数据进行展示,常常还需要对实时数据进行处理、展示并更新数据库
    我采用的是轮询的方法
    部分页面

    <%--
      Created by IntelliJ IDEA.
      User: Jigubigu
      Date: 2018/12/10
      Time: 16:47
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>数据监控</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <%--    <link href="http://cdn.bootcss.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">--%>
        <script src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script>
        <script type="text/javascript" src="js/echarts.js"></script>
        <script type="text/javascript" src="js/option.js"></script>
        <script type="text/javascript" src="js/getLogging.js"></script>
        <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.css">
        <script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
        <style>p{line-height: 90%}</style>
    </head>
    <body>
    <nav class="navbar navbar-default navbar-static-top">
    <div class="container-fluid">
        <div class="navbar-header">
            <a class="navbar-brand" href="login.jsp">智能制造</a>
        </div>
        <div>
            <ul class="nav navbar-nav">
                <li class="active"><a href="#">首页</a></li>
                <li><a href="#">机器选择</a></li>
                <li><a href="#">刷新页面</a>
                </li>
            </ul>
        </div>
    </div>
    </nav>
    <div class="container-fluid">
        <div class="row clearfix">
            <div class="col-md-3"  >
                <div class="jumbotron" style="height: 30%;padding: 4%;top: 40%;">
                    <img style="padding: 13%	;top:0;bottom:0;left:0;right:0;width:100%;margin:auto;" src="assets/machin1.png">
                </div>
                <div class="jumbotron" style="height: 30%;padding: 0%;" id="machinea">
                    <div style="height: 20%;">
                        <p>
                            <br />
                            &nbsp;&nbsp;&nbsp;&nbsp;<strong>机器参数:</strong>
                        </p>
                        <p id="n">
                            <strong>进给率: 0  &nbsp;mm/min</strong>
                        </p>
                        <p id="f">
                            <strong>主轴转速:0  &nbsp;n/min</strong>
                        </p>
                        <p id="ap">
                            <strong>切割深度:0  &nbsp;mm</strong>
                        </p>
                        <p id="ae">
                            <strong>切割宽度:0  &nbsp;mm</strong>
                        </p>
                        <br />
                        <p>
                            <strong>刀具磨损量:0.22 &nbsp;mm</strong>
                        </p>
                    </div>
                    <div id="machine" style="height: 80%;width: 100%"></div>
    <script>
                        setInterval(function start( ) {
                            $.ajax({
                                type : 'post',	//传输类型
                                async : false,	//同步执行
                                url : '/machineParameter',	//web.xml中注册的Servlet的url-pattern
                                data : { "machineId":machine},
                                dataType : 'json', //返回数据形式为json
                                success : function(result) {
                                    if (result) {
                                        console.log("result is:" + result);
                                        var n = result[0].n;
                                        var f = result[0].f;
                                        var ap = result[0].ap;
                                        var ae = result[0].ae;
                                        console.log(result[0])
                                        document.getElementById("n").innerHTML = " &nbsp;&nbsp;&nbsp;&nbsp;<strong>进给率: "+n+" mm/min</strong>";
                                        document.getElementById("f").innerHTML = " &nbsp;&nbsp;&nbsp;&nbsp;<strong>主轴转速: "+f+" n/min</strong>";
                                        document.getElementById("ap").innerHTML =" &nbsp;&nbsp;&nbsp;&nbsp;<strong>切割深度: "+ap+" mm</strong>";
                                        document.getElementById("ae").innerHTML = " &nbsp;&nbsp;&nbsp;&nbsp;<strong>切割宽度: "+ae+" mm</strong>";
    
                                    }
                                },
                                error : function(errorMsg) {
                                   console.log("shi");
                                }
                            });
                            $.ajax({
                                type : 'post',	//传输类型
                                async : false,	//同步执行
                                url : '/logServlet',	//web.xml中注册的Servlet的url-pattern
                                data : {},
                                dataType : 'json', //返回数据形式为json
                                success : function(result) {
                                    if (result) {
                                        var str="<p><strong>全局日志</strong></p>";
                                        console.log("result is:" + result);
                                        console.log(result[0])
                                        for (var i = 0; i < result.length; i++){
                                           str += "<p style=\"font-size:large;\">时间:"+
                                                result[i].time +" 机器号:"+ result[i].machineId + " 日志信息:" +
                                               result[i].log + "</p>";
                                 
                                        }
                                        document.getElementById("log").innerHTML  = str;
                                    }
                                },
                                error : function(errorMsg) {
                                    console.log("shi");
                                }
                            });
                        },1000);
                    </script>
                   <div class="jumbotron" id="log" style="height: 40%;padding: 10%;">
                </div>
    
            </div>
            </div>
    
    展开全文
  • ASP是流行的Web应用开发环境,Matlab具有强大的数据可视化功能。利用 COM接口进行了ASP对Matlab数据可视化功能的调用,实现了在Web应用中的数据可视化
  • web前端数据可视化控件

    千次阅读 2018-03-23 15:58:33
    web前端数据可视化开源控件 表格数据显示:Datatables https://github.com/DataTables/DataTables https://www.datatables.net/download/ 图表数据显示:Echarts https://github.com/ecomfe/echarts ...
  • muze:Web可组合的数据可视化库,采用WebAssembly的数据优先方法
  • 利用Python爬虫进行Web数据挖掘已经越来越普遍,网上的各种Python爬虫资料教程比较多,但是很少有人对Web数据挖掘进行系统地总结和分析。 从目标上来讲,Web数据挖掘分为三类。最常见的是对于网站内容的爬取,包括...
  • 数据可视化web Demo

    2019-12-02 18:03:38
    打开看过,页面挺炫酷的,只是一个demo,可以参考摸索。支持平板,对于初学者有很大帮助。用到jquery、echarts、rem、layer
  • 前言  工业物联网是一个范围很大的概念,本文从数据可视化的角度介绍了一个最小化的...物联网平台架构主要参考了图扑物联工业物联网平台,并从中提取了部分功能进行介绍,前端数据可视化采用的是HT for Web。  ...
  • 基于HTML5的数据可视化方法有哪些

    千次阅读 2017-09-25 16:10:56
    现在在大数据的带领下,数据可视化越来越突出,能够清楚的分析出自己想要的数据,这也是我们现在最求的数据可视化方法,那么实现HTML5的数据可视化方法有哪些?这都是我们值得研究的东西,数据可以给我们带来敏感的...
  • Web应用数据挖掘可视化界面布局的设计方法.pdf
  • Muze是一个数据可视化库,它使用分层的图形语法(GoG)为Web创建可组合的交互式数据可视化。 它使用数据优先方法来定义图表的构造和层,自动生成跨图表交互,并允许您覆盖图表上的任何行为或交互。
  • 大数据可视化平台Web页面源码,数据可视化网页,HTML源码
  • WEB--数据可视化资源

    千次阅读 2013-02-25 09:52:01
    大数据时代的到来,对于数据分析以及数据展示都是极大的...datav.js就是为了降低日常对于可视化方法使用的成本,用数据可视化的方法帮助到更多的人。 1.datav.js可视化组件库 地址:http://datavlab.org/2012/08/2
  • 行业分类-设备装置-Web多媒体资源开放标注数据可视化方法及装置.zip
  • 行业资料-设备研制-Web多媒体资源开放标注数据可视化方法及装置.zip
  • 大数据可视化平台展示,html+css,文件齐全,解压既用
  • ###Flask websocket开发实时数据可视化web应用 实时数据可视化web演示 http://datav.kszixue.com/
  • 基于此,我们开发了基于地图的数据可视化组件,以附加库的形式加入到JSAPI中,目前主要包括热力图、散点图、区域图、迁徙图。 热力图是以颜色来表现数据强弱大小及分布趋势的可视化类型,如上图左上角所示,热力图...
  • D3.js:使用Web标准实现数据可视化的JavaScript库

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 134,690
精华内容 53,876
关键字:

web数据可视化方法