使用jquery第三方插件(生成曲线图)

最近项目中有用到生成曲线图,经过查找资料解决了,虽然有简单说明但参数比较多和麻烦,于是自己没事就总结了项目中的具体用法:

准备工作:首先添加jquery的插件包到程序中,路径:https://files.cnblogs.com/jameslif/codebase.rar  然后在代码中依次添加引用文件

              准备你认为OK的几种颜色值 我这里有收藏:常用的颜色(30种)http://www.cnblogs.com/jameslif/archive/2012/05/10/2494712.html 准备工作OK了;

 property是重要的参数 

 1 public string property;
 2 public string dataKind;
 3 public string data;
 4 public string simple;
 5 string[] colors = { "#51e1d5", "#8DC63F", "#F7EE1D", "#ED1C24", "#ED9944", "#0000FF", "#60281e", "#827100", "#ca6924", "#ca6924",
 6                       "#6e511e","#bddd22","#789262","#0eb83a","#000000","#c0ebd7","#424c50","#44cef6","#4b5cc4","#8d4bbb"};
 7  private void SetProperty()
 8     {
 9         property = "{maxValue:110,minValue:0,stepValue:5,valueP:30,maxNorm:24,minNorm:1,stepNorm:1,normP:27,";
10         property += "normFormat:\"&d月\",curve_border:2,point_radius:4,tipX:\"月份\",tipY:\"得分\"}";
11     }

 

解释:color为某一种数据的代表颜色;maxValue:110,//Y轴最大值 minValue:0,//Y轴最小值 ;stepValue:5,//Y轴每两个刻度间距所表示的单元步进值;valueP:30,//表示Y轴每个单元步进值所用的像素高度 ;maxNorm:24,//X轴最大值;minNorm:1,//X轴最小值;stepNorm:1,//X轴每两个刻度间距所表示的单元步进值;normP:27,//表示X轴每个单元步进值所用的像素宽度;normFormat:"&d月",//X轴上坐标值的显示单位格式,其中必须包含&d占位符,用来被X轴的真实值替换,默认为"&d";curve_border:2,//曲线的粗细,单位像素;point_radius:4,//圈点的半径,单位像素;tipX:"月份",//浮动提示框中的X轴显示文字说明;tipY:"得分"//浮动提示框中的Y轴显示文字说明

setDataKind方法中的传参: dataKind

 public void SetDataKind()
    {
        SoftNameSpace.BLL.dept bll = new SoftNameSpace.BLL.dept();
        DataSet ds = bll.GetAllList();
        int i = 0;
        string color = "#51e1d5";//默认值;
        dataKind = "[";
        foreach (DataRow dr in ds.Tables[0].Rows)
        {
            if (i < colors.Length)
            {
                color = colors[i];
            }
            else
            {
                color = "#51e1d5";//默认值;
            }

            dataKind += "{id:'c" + (i++).ToString() + "',color:'" + color + "',label:'" + dr["deptName"].ToString() + "'},";
        }
        //删除逗号
        if (dataKind.Length > 2)
        {
            dataKind = dataKind.Remove(dataKind.Length - 1, 1);
        }
        dataKind = dataKind + "]";
    }

解释:其中,ID为唯一序列号,color为该种数据的颜色,label为说明文字 最终形式:[{id:'c0',color:'#51e1d5',label:'修车车间'},{id:'c1',color:'#8DC63F',label:'动态车间'}]

loadDataList方法中的传参: data(即为要显示渲染的具体数据内容)

 private string Analysis(string id, string name)
    {
        SoftNameSpace.BLL.examList bll = new SoftNameSpace.BLL.examList();
        DataSet ds = bll.GetList("year(examdate) = '" + dropyear.Text + "' order by d.DeptName,examdate ");
        string ret = "{id:'" + id + "',items:[";
        foreach (DataRow dr in ds.Tables[0].Rows)
        {
            if (dr["DeptName"].Equals(name))
            {
                DateTime dt = Convert.ToDateTime(dr["examDate"].ToString());
                ret += "[" + dt.Month.ToString() + "," + dr["SumValue"] + ",true],";
            }
        }
        //删除多余的逗号
        ret = ret.Remove(ret.Length - 1, 1);
        ret += "]}";
        return ret;
    }

解释:id:唯一序列号,与数据类型的序列号对应,用于快速找出该组数据是哪一种数据;items,数据的详细信息,为一个二维数组,每个一维单元中的小数组里的参数是这样的:第一个为坐标系里的X值,第二个为坐标系里的Y值,第三个表示该点上要不要画一个能出TIP提示信息的圈点 最终形式:{id:'c0',items:[[3,100.00,true],[4,94.70,true],[5,99.50,true]]}

loadSimpleData方法中的传参: simple(即为要显示渲染的具体数据内容

 1  public void SetData()
 2     {
 3         SoftNameSpace.BLL.dept bll = new SoftNameSpace.BLL.dept();
 4         DataSet ds = bll.GetAllList();
 5         int i = 0;
 6         data = "[";
 7         foreach (DataRow dr in ds.Tables[0].Rows)
 8         {
 9             data += Analysis("c" + (i++).ToString(), dr["deptName"].ToString()) + ",";
10         }
11         //删除逗号
12         if (data.Length > 2)
13         {
14             data = data.Remove(data.Length - 1, 1);
15         }
16         data = data + "]";
17     }

解释:最终形式[{id:'c0',items:[[3,100.00,true],[4,94.70,true],[5,99.50,true]]},{id:'c1',items:[[3,100.00,true],[4,90.50,true],[5,99.20,true]]},{id:'c2',items:[[3,100.00,true],[4,94.30,true],[5,94.60,true]]}可以看出,该形式是data数组中的一个单元

前段JavsScript代码

<script type="text/javascript">
    var property=<%=property %>
    var dataKind=<%=dataKind %>;
    var data=<%=data %>;
    var simple=<%=simple %>;
    var demo;
    $(document).ready(function(){
        demo=$.createGooCurveChart($("#demo"),property);
        demo.setTitle("达标考核揭示表","分");
        demo.setDataKind(dataKind,600,150,"right");
        demo.loadSimpleData(simple);
        demo.loadDataList(data);
        //demo.clearAllData();
    });
    </script>
--页面提出来的显示区域
<div id="demo"> </div>
如果还有不明白的多多留言呀!效果图:

posted on 2012-05-10 18:31  记性特差  阅读(1002)  评论(0编辑  收藏  举报