Highcharts line直线图(内存使用监视)的实现代码

发布时间:2019-08-02编辑:脚本学堂
分享一例Highcharts line直线图的实现代码,以内存使用情况监视为例,有需要的朋友可以参考下,用来学习Highcharts还是不错的。

本节内容:
highcharts line直线图。

之前介绍过,Highcharts 饼状图(内存使用监视)的例子,大家可以参考下。

>>> 如果你不知HighCharts为何物,请参阅本站 Highcharts教程 中的相关内容。

具体实现方法,如下:

1、引入highCharts的js
 

复制代码 代码示例:
<script type="text/javascript" src="${resource(dir: 'js', file: 'jquery-1.6.js')}"></script> 
  <script type="text/javascript" src="${resource(dir: 'js', file: 'highcharts/highcharts.js')}"></script> 
  <script type="text/javascript" src="${resource(dir: 'js', file: 'highcharts/modules/exporting.js')}"></script> 

 

2、通过MainController中的方法计算mem
 

复制代码 代码示例:
package hf 
import grails.converters.JSON 
 
class MainController { 
 
  def calc = { 
    Runtime runtime = Runtime.getRuntime(); 
    Process process = runtime.exec("tasklist /fo csv"); 
    int i = 0; 
    def list = []; 
    process.inputStream.eachLine {String line -> 
      if (i >= 1) { 
        String[] p = line.split(/","/) 
        Mem mem = new Mem(); 
        mem.name = p[0].trim().replaceAll(""",""); 
        mem.pid = p[1].trim() as int; 
        mem.memSize = (p[4].replaceAll(""","").replaceAll(",","").replaceAll(" ","").replaceAll("K","")) as int; 
        println "name:"+mem.name+";pid:"+mem.pid+";memSize:"+mem.memSize; 
        def map = [:]; 
        map.id=mem.id; 
        map.pid = mem.pid; 
        map.name = mem.name; 
        map.memSize = mem.memSize; 
        list.add(map); 
      } 
      i++; 
    } 
    return render(list as JSON); 
  } 

3、在web页面中用$.post去取得数据
 

复制代码 代码示例:
$(document).ready(function() { 
     $.post("${createLink(controller:'main',action:'calc')}", {type:'init'}, function(data) { 
       //进程名 
       var memNames = new Array(); 
       //进程使用的内存 
       var memValues = new Array(); 
       jQuery.each(data, function(index,mem) { 
         memNames[index] = mem.name; 
         memValues[index] = mem.memSize/1024; 
       }); 
       //alert(data); 
       //alert(memValues) 
       showData(memNames,memValues); 
     }); 
   }); 

4、html中div的设置
 

复制代码 代码示例:
<div style="width:500px;height:500px;overflow:auto;"> 
<div id="container" style="width:6000px;height:400px;margin:0 auto;"></div> 
</div> 

5、用highCharts显示数据
 

复制代码 代码示例:
function showData(mNames,mValues) { 
      chart = new Highcharts.Chart({ 
        chart: { 
          renderTo: 'container', 
          defaultSeriesType: 'line', 
          marginRight: 130, 
          marginBottom: 50 
        }, 
        title: { 
          text: '电脑性能', 
          x: -20 //center 
        }, 
        subtitle: { 
          text: '我的电脑性能', 
          x: -20 
        }, 
        //X轴 
        xAxis: { 
          title:{ 
            text:'进程名' 
          }, 
          categories: mNames 
        },  // www.jb200.com
        //y轴 
        yAxis: { 
          title: { 
            text: '内存使用(MB)' 
          }, 
          //y=0 
          plotLines: [ 
            { 
              value: 0, 
              width: 2, 
              color: '#000000' 
            } 
          ] 
        }, 
        tooltip: { 
          formatter: function() { 
            return '<b>' + this.series.name + '</b><br/>' + 
                    this.x + ': ' + this.y + 'M'; 
          } 
        }, 
        //右边的提示 
        legend: { 
          layout: 'vertical', 
          align: 'right', 
          verticalAlign: 'top', 
          x: -10, 
          y: 100, 
          borderWidth: 0 
        }, 
        series: [ 
          { 
            name: '内存使用', 
            data: mValues 
          } 
 
        ] 
      }); 
    }
 

 6,最终结果,如下图:
Highcharts直线图