`
longgangbai
  • 浏览: 7331419 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

google js 实现Dashboard

 
阅读更多

     通过Google Chart Tools提供的图表功能实现如下:

  地址如下:

  http://code.google.com/intl/zh-CN/apis/chart/interactive/docs/gallery/gauge.html

 

效果如下图:

代码如下:

<html> 
 
<head> 
   
<script type='text/javascript' src='https://www.google.com/jsapi'></script> 
   
<script type='text/javascript'> 
      google
.load('visualization', '1', {packages:['gauge']}); 
      google
.setOnLoadCallback(drawChart); 
     
function drawChart() { 
       
var data = new google.visualization.DataTable(); 
        data
.addColumn('string', 'Label'); 
        data
.addColumn('number', 'Value'); 
        data
.addRows([ 
         
['Memory', 80], 
         
['CPU', 55], 
         
['Network', 68] 
       
]); 
 
       
var options = { 
          width
: 400, height: 120, 
          redFrom
: 90, redTo: 100, 
          yellowFrom
:75, yellowTo: 90, 
          minorTicks
: 5 
       
}; 
 
       
var chart = new google.visualization.Gauge(document.getElementById('chart_div')); 
        chart
.draw(data, options); 
     
} 
   
</script> 
 
</head> 
 
<body> 
   
<div id='chart_div'></div> 
 
</body> 
</html>

 

Loading

The google.load package name is "gauge"

  google.load('visualization', '1', {packages: ['gauge']});

The visualization's class name is google.visualization.Gauge

  var visualization = new google.visualization.Gauge(container);

Data Format

Each numeric value is displayed as a gauge. Two alternative data formats are supported:

  1. Two columns. The first column should be a string, and contain the gauge label. The second column should be a number, and contain the gauge value.
  2. Any number of numeric columns. The label of each gauge is the column's label.

Configuration Options

 

Name Type Default Description
animation.duration number 400 The duration of the animation, in milliseconds. For details, see the animation documentation.
animation.easing string 'linear' The easing function applied to the animation. The following options are available:
  • 'linear' - Constant speed.
  • 'in' - Ease in - Start slow and speed up.
  • 'out' - Ease out - Start fast and slow down.
  • 'inAndOut' - Ease in and out - Start slow, speed up, then slow down.
greenColor string '#109618' The color to use for the green section, in HTML color notation.
greenFrom number none The lowest value for a range marked by a green color.
greenTo number none The highest value for a range marked by a green color.
height number Container's width Height of the chart in pixels.
majorTicks Array of strings none Labels for major tick marks. The number of labels define the number of major ticks in all gauges. The default is five major ticks, with the labels of the minimal and maximal gauge value.
max number 100 The maximal value of a gauge.
min number 0 The minimal value of a gauge.
minorTicks number 2 The number of minor tick section in each major tick section.
redColor string '#DC3912' The color to use for the red section, in HTML color notation.
redFrom number none The lowest value for a range marked by a red color.
redTo number none The highest value for a range marked by a red color.
width number Container's width Width of the chart in pixels.
yellowColor string '#FF9900' The color to use for the yellow section, in HTML color notation.
yellowFrom number none The lowest value for a range marked by a yellow color.
yellowTo number none The highest value for a range marked by a yellow color.

Methods

 

Method Return Type Description
draw(data, options) none Draws the chart.
clearChart() none Clears the chart, and releases all of its allocated resources.

Events

No triggered events.

 

 

 

 

 

 Java 实现DashBoard:

 

package com.easyway.dashbroad;

import java.awt.Color;
import java.awt.Font;
import java.awt.GradientPaint;
import java.awt.Point;
import java.io.FileOutputStream;
import java.io.IOException;

import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.dial.DialBackground;
import org.jfree.chart.plot.dial.DialCap;
import org.jfree.chart.plot.dial.DialPlot;
import org.jfree.chart.plot.dial.DialTextAnnotation;
import org.jfree.chart.plot.dial.DialValueIndicator;
import org.jfree.chart.plot.dial.StandardDialFrame;
import org.jfree.chart.plot.dial.StandardDialRange;
import org.jfree.chart.plot.dial.StandardDialScale;
import org.jfree.data.general.DefaultValueDataset;
import org.jfree.ui.GradientPaintTransformType;
import org.jfree.ui.StandardGradientPaintTransformer;
/**
 * 
 * @Title: 
 * @Description: JFreeChart实现Dashboard功能
 * @Copyright:Copyright (c) 2011
 * @Company:易程科技股份有限公司
 * @Date:2011-4-11
 * @author  longgangbai
 * @version 1.0
 */
public class DashboardApp {

	public String getDial(String warnName,double warnValue) {  
			// 数据集合对象 此处为DefaultValueDataset  
			DefaultValueDataset dataset = new DefaultValueDataset();  
			// 当前指针指向的位置,即:我们需要显示的数据  
			dataset = new DefaultValueDataset(warnValue);  
			// 实例化DialPlot  
			DialPlot dialplot = new DialPlot();  
			dialplot.setView(0.0D, 0.0D, 1.0D, 1.0D);  
			// 设置数据集合  
			dialplot.setDataset(dataset);  
			// 开始设置显示框架结构  
			StandardDialFrame simpledialframe = new StandardDialFrame();  
			simpledialframe.setBackgroundPaint(Color.lightGray);//Color.lightGray //仪表盘边框内部颜色  
			simpledialframe.setForegroundPaint(Color.darkGray);//Color.darkGray //仪表盘边框外部颜色  
			dialplot.setDialFrame(simpledialframe);  
			// 结束设置显示框架结构,表盘颜色 从最上部 白色 过渡到最下部的蓝色  
			GradientPaint gradientpaint = new GradientPaint(new Point(), new Color(229,229,229), new Point(), new Color(229,229,229));  
			DialBackground dialbackground = new DialBackground(gradientpaint);  
			dialbackground.setGradientPaintTransformer(new StandardGradientPaintTransformer(GradientPaintTransformType.VERTICAL));  
			dialplot.setBackground(dialbackground);  
			// 设置显示在表盘中央位置的信息  
			DialTextAnnotation dialtextannotation = new DialTextAnnotation(warnName);  
			dialtextannotation.setFont(new Font("宋体", 1, 16));  
			dialtextannotation.setRadius(0.69999999999999996D);  
			dialplot.addLayer(dialtextannotation);  

		// 设置刻度范围(绿色)  
		if(warnValue==0){  
			StandardDialRange standarddialrange2 = new StandardDialRange(0D, 100D,Color.green);  
			standarddialrange2.setInnerRadius(0.52000000000000002D);  
			standarddialrange2.setOuterRadius(0.55000000000000004D);  
			dialplot.addLayer(standarddialrange2);   
		}else if(warnValue>0&&warnValue<=100){// 设置刻度范围(橘黄色)  
			StandardDialRange standarddialrange1 = new StandardDialRange(0D, 100D,Color.orange);  
			standarddialrange1.setInnerRadius(0.52000000000000002D);  
			standarddialrange1.setOuterRadius(0.55000000000000004D);  
			dialplot.addLayer(standarddialrange1);  
		}else if(warnValue>100&&warnValue<=1000){// 设置刻度范围(红色)   
			StandardDialRange standarddialrange = new StandardDialRange(0D, 1000D,Color.red);  
			standarddialrange.setInnerRadius(0.52000000000000002D);  
			standarddialrange.setOuterRadius(0.55000000000000004D);  
			dialplot.addLayer(standarddialrange);  
		}else if(warnValue>1000){// 设置刻度范围(红色)   
			StandardDialRange standarddialrange = new StandardDialRange(0D, 10000D,Color.red);  
			standarddialrange.setInnerRadius(0.52000000000000002D);  
			standarddialrange.setOuterRadius(0.55000000000000004D);  
			dialplot.addLayer(standarddialrange);  
		}  

		//指针指示框 ,仪表盘中间的小方框  
		DialValueIndicator dialvalueindicator = new DialValueIndicator(0);  
		dialvalueindicator.setFont(new Font("宋体", 1, 14));   
		dialvalueindicator.setOutlinePaint(new Color(229,229,229));  
		dialvalueindicator.setBackgroundPaint(new Color(229,229,229));  
		dialvalueindicator.setRadius(0.39999999999999998D);  
		//dialvalueindicator.setPaint(Color.red);  
		dialplot.addLayer(dialvalueindicator);  
		/*  
		* StandardDialScale 方法  
		* 参数1 开始数值 类似手表 开始 0点  
		* 参数2 结束数值 类似手表 结束 12点  
		* 参数5 间隔差值 类似手表 间隔差值5分钟  
		* 参数6 间隔数量 类似手表 1点到2点 有4个间隔点  
		*/ 
		        //如果 预警条数少于 100条,开度从 0 至 100 ,间隔 10  
		double startPosition=0D; //开度 0  
        double endPosition=100D; //开度 100  
        double skipValue=10D; //间隔 10  
        if(warnValue>100&&warnValue<1000){  
           endPosition=1000D;  
           skipValue=100D;  
        }else if(warnValue>=1000){  
            endPosition=10000D;  
            skipValue=1000D;  
        }  
		//刻度盘设置  
		StandardDialScale standarddialscale = new StandardDialScale(startPosition, endPosition,-120D, -300D, skipValue, 4);  
		standarddialscale.setTickRadius(0.88D);//设置半径  
		standarddialscale.setTickLabelOffset(0.14999999999999999D);  
		standarddialscale.setTickLabelFont(new Font("Dialog", 0, 10));//刻度盘数字大小  

		// 注意是 dialplot.addScale()不是dialplot.addLayer()  
		dialplot.addScale(0, standarddialscale);  

		// 设置指针  
		org.jfree.chart.plot.dial.DialPointer.Pointer pointer = new org.jfree.chart.plot.dial.DialPointer.Pointer();  
		dialplot.addLayer(pointer);  
		// 实例化DialCap  
		DialCap dialcap = new DialCap();  
		dialcap.setRadius(0.10000000000000001D);  
		dialplot.setCap(dialcap);  
		// 生成chart对象  
		JFreeChart jfreechart = new JFreeChart(dialplot);  
		// 3、设定参数输出结果,首先在 项目/WEB-INF/classes/,添加WarnImages文件夹  
		String filePath="D:/"+System.currentTimeMillis()+".jpeg";//动态文件名 相对  
		FileOutputStream file = null;  
		try {  
		file = new FileOutputStream(filePath);  
		ChartUtilities.writeChartAsJPEG(file, 1.0f, jfreechart, 200, 200,null);//200,200 图片大小  
		} catch (IOException e) {  
		e.printStackTrace();  
		} // 生成图片  
		finally {  
		try {  
		file.close();// 最后关闭文件流  
		} catch (IOException e) {  
		e.printStackTrace();  
		}  
		}  
		return filePath;
		}  
		public static void main(String[] args) {  
		  System.out.println(new DashboardApp().getDial("测试预警",80.0));  
		}
}


 

分享到:
评论

相关推荐

    material-dashboard-dark-edition-v2.1.0.zip

    1. **Material Design**: Material Design是Google推出的一种设计语言,它强调了层次感、动画效果和直观的交互。Material Dashboard基于这一设计原则,提供了清晰的布局、鲜明的颜色对比以及平滑的过渡效果,让用户...

    Material-Dashboard-Pro-react

    1. **React**: React是Facebook开发的JavaScript库,主要用于构建用户界面,尤其是单页应用。React通过组件化的方式进行开发,让代码结构更清晰,易于维护。在这个项目中,所有的页面和组件都是由React组件构建的。 ...

    jQuery EasyUI Portal 保存拖动位置,仿谷歌DashBoard效果的

    文件中的 "仿谷歌DashBoard效果的" 可能包含了实现这一功能的HTML文件,这些文件可能包含了必要的JavaScript代码,用于监听拖放事件、保存和恢复布局。在实际开发中,你可能需要结合这些示例代码,根据项目需求进行...

    material-dashboard-v2.1.1

    3. **图表**:可能包含了Chart.js或Google Charts等库,用于数据可视化,使用户可以直观地查看和理解关键性能指标。 4. **图标**:通常会提供一套完整的Material Design图标集,这些图标具有统一的设计风格,易于...

    material-dashboard-angular2-master_javascript_Free!_js_material_

    【标题】"material-dashboard-angular2-master_javascript_Free!_js_material_" 暗示这是一个基于Angular 2框架的Material Design风格的后台管理模板项目,它免费提供并主要使用JavaScript编程语言。Material Design...

    EAS_Dashboard2

    AngularJS**:AngularJS是Google维护的一个强大的JavaScript框架,用于构建单页应用程序(SPA)。它通过双向数据绑定简化了DOM(文档对象模型)操作,使得视图和模型之间的数据同步变得更加容易。在EAS_Dashboard2...

    material-dashboard-pro-react-v1.2.0

    而Material-UI则是基于Google的Material Design设计规范实现的一套React组件库,它为开发者提供了丰富的可定制化组件,使得构建美观、响应式的应用变得更加便捷。本文将围绕“material-dashboard-pro-react-v1.2.0”...

    vuetify-material-dashboard-master.zip

    Vuetify则是Vue的一个官方推荐的UI组件库,以其对Google Material Design的完美实现而闻名。本文将深入探讨“vuetify-material-dashboard-master.zip”这个压缩包,分析其内容并解析其中的核心知识点,帮助开发者...

    material-dashboard-pro-react-v1.0.0

    React是Facebook开发的JavaScript库,主要用于构建用户界面,特别是单页应用程序(SPA)。它的组件化开发模式使得代码复用和维护变得更加容易,提高了开发效率。在"material-dashboard-pro-react-v1.0.0"中,React...

    Beautiful Widget Dashboard using Javascript, Angular and CSS.zip

    标题 "Beautiful Widget Dashboard using Javascript, Angular and CSS" 提示我们这个项目是关于创建一个美观的部件仪表盘,它结合了JavaScript、Angular框架和CSS技术。这个压缩包可能包含了一个使用这些技术实现的...

    AngularJS Admin Dashboard Theme

    谷歌地图 ngTables Chart.js sparkline 自定义开关按钮 自定义单选按钮和复选框 定价表页面 锁定屏幕和登录页面 404错误页面 500错误页面 集成WYSIWYG编辑器(CKEditor) 邮箱 日历 时间表 搜索结果 清单 用户配置文件...

    Bootstrap4 官方模板 ( Hyper - Responsive Bootstrap 4 Admin Dashboard )

    Chartjs Charts Brite Charts Apex Charts Select2, Date Range Picker, Input Mask included Bootstrap form wizard Timepickers Spinner Max Length Validator Advanced Datatables Dragula – Simple Drag and ...

    MaterialDashboard开源的Bootstrap4MaterialDesignAdmin

    它利用 jQuery 进行DOM操作,以及 Vue.js 或 React.js 这样的现代前端框架,实现组件的动态行为和交互。例如,模态框、滑块、下拉菜单等元素可以通过 JavaScript 进行初始化和自定义,以满足不同应用场景的需求。 ...

    google-sheets-dashboard

    使用Google表格更新您的实时信息中心 多年来,人们一直在使用电子表格来保存和理解数据。 一旦数据增长到成百上千个单元,就很难快速,轻松地掌握它们。 那么,如果我们有一个Google表格可以自动更新您的仪表板,使...

    material-dashboard:Material Dashboard-开源Bootstrap 4 Material Design Admin

    是一个免费的Material Bootstrap Admin,具有受Google Material Design启发的全新设计。 我们很高兴通过易于使用且美观的组件来介绍材料概念。 Material Dashboard是基于流行的Bootstrap框架构建的,它带有几个经过...

    Python-FlowDashboard专注于重要事项的个人仪表板

    从技术角度来看,Flow Dashboard可能采用了前后端分离的架构,前端使用HTML、CSS和JavaScript(可能包括React或Vue.js等现代前端框架)来创建用户界面,与后端通过API接口进行通信。为了实现数据持久化,项目可能...

    covid19dashboard-源码.rar

    源码通常包含了编程语言(如JavaScript、Python、R等)编写的文件,用于处理数据、设计界面和实现交互功能。 【描述解析】 描述部分"Covid19dashboard-源码.rar"与标题相同,进一步确认了这是一个关于COVID-19疫情...

    Md-Dashboard

    "Md-Dashboard" 是一个基于 Material Design 设计理念构建的仪表板项目,它利用了 JavaScript 这一强大的脚本语言来实现动态交互和功能。Material Design 是 Google 推出的一种现代设计语言,强调清晰的层次结构、...

    ct-material-dashboard-pro:Material Dashboard Pro-Bootstrap 4管理员

    2. **JS** 文件夹:包含了JavaScript代码,用于实现页面的交互功能,如表单验证、图表绘制、滑块控件等。 3. **Fonts** 文件夹:存放了字体图标,如Font Awesome和Material Icons,用于美化界面。 4. **Plugins** ...

    ga-dashboard:使用 Google Analytics Embed API 和朋友的示例动态仪表板

    本项目“ga-dashboard”就是这样一个实例,它利用了Google Analytics Embed API和C#编程语言来创建一个动态的仪表板,帮助用户直观地查看和分析Google Analytics数据。 首先,我们来了解一下Google Analytics Embed...

Global site tag (gtag.js) - Google Analytics