自己研究的画图highCharts +js+jsf+facelets

highCharts 说明

 

通过阅读highCharts API文档,我们知道highCharts的基本结构是:

var chart = new Highcharts.Chart({

chart: {…}

colors: [{…}]

credits: {…}

exporting: {…}

global: {…}

labels: {…}

lang: {…}

legend: {…}

loading: {…}

navigation: {…}

pane: {…}

plotOptions: {…}

series: [{…}]

subtitle: {…}

title: {…}

tooltip: {…}

xAxis: {…}

yAxis: {…}

});

 

其中只有几个是必须配置的属性,其他无特殊要求默认即可。所以,HighCharts开发,只需要了解每个属性的含义,并有选择的配置需要的效果既可。

 

使用起来可以分为以下三步

 

第一  首先

      下载highCharts 要用的js包 官网地址为  http://www.highcharts.com/

      因为要用到  jquery方法

      下载jquery.min.js包  版本要在1.7以上

把下载后的js引入到项目或者特定的页面中 

格式如下

下面三个是必须要引入的

<script src="../js/jquery/jquery-1.8.2.min.js"></script>

<script src="../js/highcharts.js"></script>

<script src="../js/modules/exporting.js"></script>

 

第二  导入js内容

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"

xmlns:h="http://java.sun.com/jsf/html"

xmlns:f="http://java.sun.com/jsf/core"

xmlns:ui="http://java.sun.com/jsf/facelets">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>HighCharts</title>

 

/需要引入的   js包 

//jquery

<script src="../js/jquery/jquery-1.8.2.min.js"></script>

//highcharts js

<script src="../js/highcharts.js"></script>

// 导出图表功能

<script src="../js/modules/exporting.js"></script>

 

</head>

<f:view>

<body>

<h:form styleClass="form" id="form1">

<div class="title">当前位置->线图例</div>

<h:commandButton styleClass="btn" id="btn_back" action="#{testTongjiMBean.back}" value="返回"></h:commandButton><br/>

标题:<h:inputText id="titless" value="#{testTongjiMBean.columnHighcharts.title}"></h:inputText><br/>

x下标:<h:inputText id="xAxisss" value="#{testTongjiMBean.columnHighcharts.xAxis}"></h:inputText><br/>

y下标:<h:inputText id="yTitless" value="#{testTongjiMBean.columnHighcharts.ytitle}"></h:inputText><br/>

数据一:<h:inputText id="serie1" value="#{testTongjiMBean.columnHighcharts.series[0]}"></h:inputText><br/>

数据二:<h:inputText id="serie2" value="#{testTongjiMBean.columnHighcharts.series[1]}"></h:inputText><br/>

<div id="container" style="min-width800pxheight400px">1111</div>

</h:form>

</body>

<script type="text/javascript">

 

//把  字符串解析成数  

    var bb= $("#form1\\:xAxisss").val().split(",")

var j1=0;

//第一条数据

var a1=$("#form1\\:serie1").val().split(",")

   // 把字符串数组  a1 转成成 josn 对象  obj

   var txt1 = '[' ;    //josn 对象           

   for (var i in a1) 

   { 

    txt1=txt1+'{"name":"'+bb[j1]+'",y:'+Number(a1[i])+ '},'   //这里如果  name 是鼠标移动到该数据图例上显示的 说明,为值

    j1=j1+1;

   }

   txt1= txt1.substring(0,txt1.length-1);

   txt1=txt1+']';   

    var obj1 = eval ("(" + txt1 + ")");

 

    //第二条数据   如果有第二条数据的话

    var j2=0;

var a2=$("#form1\\:serie2").val().split(",")

   // 把字符串数组  a1 转成成 josn 对象  obj

   var txt2 = '[' ;    //josn 对象

   for (var i2 in a2) 

   { 

    txt2=txt2+'{"name":"'+bb[j2]+'",y:'+Number(a2[i2])+ '},'   //这里如果  name付别的值的话  鼠标移动到  图上会显示出该值 而不是x下标

    j2=j2+1;

   }

   txt2= txt2.substring(0,txt2.length-1);

   txt2=txt2+']';   

   var obj2 = eval ("(" + txt2 + ")");

    

    

$(document).ready(function() {

$('#container').highcharts(

{

chart : {

type : 'column' /*柱状图的属性           //图表类型 line, spline, area, areaspline, column, bar, pie , column ,scatter   */

},

title : {

text : $("#form1\\:titless").val()  /* 标题 */

},

xAxis : { /*x坐标轴  */

categories :  $("#form1\\:xAxisss").val().split(",")

},

yAxis : {

title : {

text :  $("#form1\\:yTitless").val()  /*y坐标轴  */

}

},

series : [ {  /*同一种数据 所有数据 放在一个 组中*/ 

            name: '生产',

            color:'#ff0000',    //改变但个柱体的颜色

            data: obj1

        }, {

           color:'#00ff00',

            name: '销售',

            data: obj2

        } ]

});

});

</script>

</f:view>

</html>

 

第三  处理台

管理bean

 

package cn.wiztek.mbean;

 

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

 

public class TestTongjiMBean extends AbstractMBean{

 

//其他图

public String column(){

 

//指定数据

this.columnHighcharts.title="标题";

//x轴 下标 必须以下面的方式拼接  并且   列数要跟series 数据列数相同

this.columnHighcharts.xAxis="黄金国际,会渴望元,东城摩尔,翡翠东郡,会客望远";

// y柱图例说明

this.columnHighcharts.ytitle="项目金额单位 元";

//数据列  格式也得是拼接成  "2,6,8,1,2" 方式 

this.columnHighcharts.series=new ArrayList<String>();

this.columnHighcharts.series.add(0, "2,6,8,1,2");

this.columnHighcharts.series.add(1, "4,2,5,6,1");

return column;

}

}

 

Highcharts 包装类

 

package cn.wiztek.TongjiWapBean;

 

import java.util.ArrayList;

import java.util.List;

 

/**

 * 柱状图  column 

 * @author lcs

 *

 */

public class ColumnHighcharts {

 

public String chart="column";//默认图表类型line, spline, area, areaspline,column, bar, pie , scatter  默认值 为 column

public String title;//主标题

public String tooltip;//副标题

public String xAxis;// 配置x轴下标   格式为     "黄金国际,会渴望元,东城摩尔,翡翠东郡,会客望远"  页面中会解析成字符串数组

public String ytitle;// y坐标轴说明 格式为    普通字符窜

//public Object legend=new Object(); //图例选项

public List<String> series=new ArrayList<String>(); // 配置数据列选项

 

public String getChart() {

return chart;

}

public void setChart(String chart) {

this.chart = chart;

}

public String getxAxis() {

return xAxis;

}

public void setxAxis(String xAxis) {

this.xAxis = xAxis;

}

 

public String getYtitle() {

return ytitle;

}

public void setYtitle(String ytitle) {

this.ytitle = ytitle;

}

public String getTitle() {

return title;

}

public void setTitle(String title) {

this.title = title;

}

public String getTooltip() {

return tooltip;

}

public void setTooltip(String tooltip) {

this.tooltip = tooltip;

}

public List<String> getSeries() {

return series;

}

public void setSeries(List<String> series) {

this.series = series;

}

}

 

 

第四 相关网站

http://www.iteye.com/news/12109-highcharts-charting-api

 

http://www.highcharts.me/demo/index.php?p=40

 

http://www.52wulian.org/tag/highcharts3-0/

 

http://www.highcharts.me/demo/index.php

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值