0

jqPlot——基于jquery的页面图表绘制工具【转】 21 April 2012 10:53 Saturday by 小心 浏览(51)

原文地址:http://blog.csdn.net/pittzhangswing/article/details/6760633
     
    可能是个人认识能力有限,一直认为仅仅靠html是很难展现稍具动态的图表的,但是在看到jqPlot之后,我的认识有了很大改变,jqplpt——基于HTML的图表展示插件,而且不生成图片,最可贵的是能生成类似flex的数据动态提示以及动态改变数据展示范围等等。

     jqplot是基于一个基本的jqplot.js文件,并有多个js文件支持的插件——也就是说jqplot.js文件只能支持线状图的绘制,对于饼状图,柱状图等图形需要引入pieRenderer.js等文件。

    这里参照jqPlot的官方文档,以饼状图为例简单的说一下jqPlot的用法:

    第一步,引入js文件(如果是画线状图之外的其他图表,需要引入相关js文件,这里引入饼状图文件pieRenderer)

      <!--[if IE]><script language="javascript" type="text/javascript" src="./excanvas.js"></script><![endif]-->
  <link rel="stylesheet" type="text/css" href="./jquery.jqplot.css" />
  <script language="javascript" type="text/javascript" src="./jquery-1.3.2.min.js"></script>
  <script language="javascript" type="text/javascript" src="./jquery.jqplot.js"></script>
  <script language="javascript" type="text/javascript" src="./plugins/jqplot.pieRenderer.js"></script>

    第二步,增加一个图表展示区域的容器

<div id="chart" style="margin-top:20px; margin-left:20px; width:460px; height:500px;"></div>

    第三步,获取数据

line1 = [['frogs', 3], ['buzzards', 7], ['deer', 2.5], ['turkeys', 6], ['moles', 5], ['ground hogs', 4]];

    第四步,配置Option对象,并创建图表

$.jqplot('chart', [line1], {
        title:'pieRenderer ',//设置饼状图的标题
        seriesDefaults: {fill: true, 
         showMarker: false, 
         shadow: false,
         renderer:$.jqplot.PieRenderer,
         rendererOptions:{
            diameter: undefined, // 设置饼的直径
            padding: 20,        // 饼距离其分类名称框或者图表边框的距离,变相该表饼的直径
            sliceMargin: 9,     // 饼的每个部分之间的距离
            fill:true,         // 设置饼的每部分被填充的状态
            shadow:true,       //为饼的每个部分的边框设置阴影,以突出其立体效果
            shadowOffset: 2,    //设置阴影区域偏移出饼的每部分边框的距离
            shadowDepth: 5,     // 设置阴影区域的深度
            shadowAlpha: 0.07   // 设置阴影区域的透明度
          }
         },
        legend:{
         show: true,//设置是否出现分类名称框(即所有分类的名称出现在图的某个位置)
         location: 'ne',     // 分类名称框出现位置, nw, n, ne, e, se, s, sw, w.
         xoffset: 12,        // 分类名称框距图表区域上边框的距离(单位px)
         yoffset: 12,        // 分类名称框距图表区域左边框的距离(单位px)
        }
        
    });

 完整的代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Simple ****</title>
  <!--[if IE]><script language="javascript" type="text/javascript" src="./excanvas.js"></script><![endif]-->
  <link rel="stylesheet" type="text/css" href="./jquery.jqplot.css" />
  <script language="javascript" type="text/javascript" src="./jquery-1.3.2.min.js"></script>
  <script language="javascript" type="text/javascript" src="./jquery.jqplot.js"></script>
  <script language="javascript" type="text/javascript" src="./plugins/jqplot.pieRenderer.js"></script>
  <script type="text/javascript" language="javascript">
  
  $(document).ready(function(){
   
 line1 = [['frogs', 3], ['buzzards', 7], ['deer', 2.5], ['turkeys', 6], ['moles', 5], ['ground hogs', 4]];


    plot1 = $.jqplot('chart', [line1], {
        title:'pieRenderer ',//设置饼状图的标题
        seriesDefaults: {fill: true, 
         showMarker: false, 
         shadow: false,
         renderer:$.jqplot.PieRenderer,
         rendererOptions:{
            diameter: undefined, // 设置饼的直径
            padding: 20,        // 饼距离其分类名称框或者图表边框的距离,变相该表饼的直径
            sliceMargin: 9,     // 饼的每个部分之间的距离
            fill:true,         // 设置饼的每部分被填充的状态
            shadow:true,       //为饼的每个部分的边框设置阴影,以突出其立体效果
            shadowOffset: 2,    //设置阴影区域偏移出饼的每部分边框的距离
            shadowDepth: 5,     // 设置阴影区域的深度
            shadowAlpha: 0.07   // 设置阴影区域的透明度
          }
         },
        legend:{
         show: true,//设置是否出现分类名称框(即所有分类的名称出现在图的某个位置)
         location: 'ne',     // 分类名称框出现位置, nw, n, ne, e, se, s, sw, w.
         xoffset: 12,        // 分类名称框距图表区域上边框的距离(单位px)
         yoffset: 12,        // 分类名称框距图表区域左边框的距离(单位px)
        }
        
    });

  });
  </script>
  </head>
  <body>
    <div id="chart" style="margin-top:20px; margin-left:20px; width:460px; height:500px;"></div>
  </body>
</html>

生成图表展示如下:

jqPlot——基于jquery的页面图表绘制工具 - gaoyusi - My code life

下面是一些其他类型的图标的截图:

1.多纵轴图

jqPlot——基于jquery的页面图表绘制工具 - gaoyusi - My code life

2.带提示信息的甘特图

jqPlot——基于jquery的页面图表绘制工具 - gaoyusi - My code life

3.以table方式展示提示信息的甘特图

jqPlot——基于jquery的页面图表绘制工具 - gaoyusi - My code life

4.带提示信息的线状图(可拖动)

jqPlot——基于jquery的页面图表绘制工具 - gaoyusi - My code life

对于jqPlot功能的具体介绍请关注本文的后续文章——jqPlot的Option配置对象详解。

jqPlot的Option配置对象详解【转】 21 April 2012 10:52 Saturday by 小心 浏览(25)

原文地址:http://blog.csdn.net/pittzhangswing/article/details/6760633  
  如果看过本文姊妹篇《jqPlot——基于jquery的图表绘制工具》的朋友,应该知道jqPlot大致的操作方法;如果还是不太清楚的话,可以参考jqPlot官方网站的使用方法介绍。这里主要介绍jqPlot中核心部分——Option配置对象。同时,也会对jqplot的各个渲染器做个简单介绍。

     这里主要是参考jqPlot官方网站关于Option的介绍并结自己简单实践和理解来对Option的相关属性进行解释,如有不合适或错误的地方请指正。

  1. options =   
  2. {  
  3.     seriesColors: [ "#4bb2c5""#c5b47f""#EAA228""#579575""#839557""#958c12",   
  4.         "#953579""#4b5de4""#d8b83f""#ff5800""#0085cc"],  // 默认显示的分类颜色,  
  5.         //如果分类的数量超过这里的颜色数量,则从该队列中第一个位置开始重新取值赋给相应的分类  
  6.     stackSeries: false// 如果置为true并且有多个分类(如果是折线图,就必须多于一条折线),  
  7.                         // 那么每个分类(折线)在纵轴上的值为其前所有分类纵轴值总和与其纵  
  8.                         //轴值相加值(eg,当前分类纵轴值为Y3  
  9.                         //,其前有Y2,Y1,那么他显示在Y轴上值为Y2+Y3+Y1,目前该属性支持线图和柱状图  
  10.     title: '',      //设置当前图的标题  
  11.     title: {  
  12.         text: '',   // 设置当前图的标题  
  13.         show: true,//设置当前标题是否显示  
  14.     },  
  15.     axisDefaults: {  
  16.         show: false,    // wether or not to renderer the axis.  Determined automatically.  
  17.         min: null,      // 横(纵)坐标显示的最小值  
  18.         max: null,      // 横(纵)坐标显示的最大值  
  19.         pad: 1.2,       // 一个相乘因子,  
  20.                 //(数据在横(纵)轴上最大值-数据在横(纵)轴上最小值)*pad值=该轴显示的横(纵)坐标区间长度  
  21.                 // 该轴显示的横(纵)坐标区间长度=横(纵)坐标显示的最大值-横(纵)坐标显示的最小值  
  22.                 //如果设置了max和min的值的话,那么会优先考虑min和max设置的值  
  23.         ticks: [],      //设置横(纵)坐标的刻度上的值,可为该ticks数组中的值,  
  24.                       // a 1D [val1, val2, ...], or 2D [[val, label], [val, label], ...]                           
  25.         numberTicks: undefined,  //一个相除因子,用于设置横(纵)坐标刻度间隔  
  26.                                  //横(纵)坐标刻度间隔值=横(纵)坐标区间长度/(numberTicks-1)  
  27.         tickInterval:'',         //横(纵)坐标刻度间隔值,可为日期字符串  
  28.         renderer: $.jqplot.LinearAxisRenderer,  // 设置横(纵)轴上数据加载的渲染器,有dateAxisRenderer(参见本文最后相关介绍) 。  
  29.         rendererOptions: {},    // 设置renderer的Option配置对象,线状图不需要设置  
  30.                     //不同图表的Option配置对象请参见下面《jqPlot各个不同插件的Option对象设置》  
  31.                              //中各个图表的配置Option对象  
  32.         tickOptions: {  
  33.             mark: 'outside',    // 设置横(纵)坐标刻度在坐标轴上显示方式,分为坐标轴内,外,穿过坐标轴显示  
  34.                                 // 值也分为:'outside', 'inside' 和 'cross',  
  35.             showMark: true,     //设置是否显示刻度  
  36.             showGridLine: true// 是否在图表区域显示刻度值方向的网格线  
  37.             markSize: 4,        // 每个刻度线顶点距刻度线在坐标轴上点距离(像素为单位)  
  38.                                 //如果mark值为 'cross', 那么每个刻度线都有上顶点和下顶点,刻度线与坐标轴  
  39.                                 //在刻度线中间交叉,那么这时这个距离×2,  
  40.             show: true,         // 是否显示刻度线,与刻度线同方向的网格线,以及坐标轴上的刻度值  
  41.             showLabel: true,    // 是否显示刻度线以及坐标轴上的刻度值  
  42.             formatString: '',   // 梃置坐标轴上刻度值显示格式,eg:'%b %#d, %Y'表示格式"月 日,年","AUG 30,2008"  
  43.             fontSize:'10px',    //刻度值的字体大小  
  44.            fontFamily:'Tahoma'//刻度值上字体  
  45.            angle:40,           //刻度值与坐标轴夹角,角度为坐标轴正向顺时针方向  
  46.            fontWeight:'normal'//字体的粗细  
  47.            fontStretch:1//刻度值在所在方向(坐标轴外)上的伸展(拉伸)度  
  48.         }  
  49.         showTicks: true,        /// 是否显示刻度线以及坐标轴上的刻度值  
  50.         showTickMarks: true,    //设置是否显示刻度  
  51.         useSeriesColor: true     //如果有多个纵(横)坐标轴,通过该属性设置这些坐标轴是否以不同颜色显示  
  52.     },  
  53.       
  54.     axes: {  
  55.         xaxis: {  
  56.             // 设置同 axisDefaults  
  57.         },  
  58.         yaxis: {  
  59.             // 设置同 axisDefaults  
  60.         },  
  61.         x2axis: {  
  62.            // 设置同 axisDefaults  
  63.         },  
  64.         y2axis: {  
  65.             // 设置同 axisDefaults  
  66.         }  
  67.     },  
  68.       
  69.     seriesDefaults: {//如果有多个分类,这可通过该配置属性设置各个分类的共性属性  
  70.         show: true,     // 设置是否渲染整个图表区域(即显示图表中内容)  
  71.         xaxis: 'xaxis'// either 'xaxis' or 'x2axis'.  
  72.         yaxis: 'yaxis'// either 'yaxis' or 'y2axis'.  
  73.         label: '',      // 用于显示在分类名称框中的分类名称  
  74.         color: '',      // 分类在图标中表示(折现,柱状图等)的颜色  
  75.         lineWidth: 2.5, // 分类图(特别是折线图)哪宽度  
  76.         shadow: true,   // 各图在图表中是否显示阴影区域  
  77.         shadowAngle: 45,    // 参考grid中相同参数  
  78.         shadowOffset: 1.25, // 参考grid中相同参数  
  79.         shadowDepth: 3,     // 参考grid中相同参数  
  80.         shadowAlpha: 0.1,   // 参考grid中相同参数  
  81.         showLine: true,     //是否显示图表中的折线(折线图中的折线)  
  82.         showMarker: true,   // 是否强调显示图中的数据节点  
  83.         fill: false,        // 是否填充图表中折线下面的区域(填充颜色同折线颜色)以及legend  
  84.                             //设置的分类名称框中分类的颜色,此处注意的是如果fill为true,  
  85.                            //那么showLine必须为true,否则不会显示效果  
  86.         fillAndStroke: false,       //在fill为true的状态下,在填充区域最上面显示一条线(如果是折线图则显示该折线)  
  87.         fillColor: undefined,       // 设置填充区域的颜色  
  88.         fillAlpha: undefined,       // 梃置填充区域的透明度  
  89.         renderer: $.jqplot.PieRenderer,  // 利用渲染器(这里是利用饼图PieRenderer)渲染现有图表  
  90.                                        //,从而转换成所需图表  
  91.         rendererOptions: {}, // 传给上个属性所设置渲染器的option对象,线状图的渲染器没有option对象,  
  92.                              //不同图表的Option配置对象请参见下面《jqPlot各个不同插件的Option对象设置》  
  93.                              //中各个图表的配置Option对象  
  94.         markerRenderer: $.jqplot.MarkerRenderer,    // renderer to use to draw the data   
  95.                                                     // point markers.  
  96.         markerOptions: {   
  97.             show: true,             // 是否在图中显示数据点  
  98.             style: 'filledCircle',  // 各个数据点在图中显示的方式,默认是"filledCircle"(实心圆点),  
  99.                                     //其他几种方式circle,diamond, square, filledCircle,  
  100.                                     // filledDiamond or filledSquare.  
  101.             lineWidth: 2,       // 数据点各个的边的宽度(如果设置过大,各个边会重复,会显示的类似于实心点)  
  102.             size: 9,            // 数据点的大小  
  103.             color: '#666666'    // 数据点的颜色  
  104.             shadow: true,       // 是否为数据点显示阴影区(增加立体效果)  
  105.             shadowAngle: 45,    // 阴影区角度,x轴顺时针方向  
  106.             shadowOffset: 1,    // 参考grid中相同参数  
  107.             shadowDepth: 3,     //参考grid中相同参数  
  108.             shadowAlpha: 0.07   // 参考grid中相同参数  
  109.         }  
  110.         isDragable: true,//是否允许拖动(如果dragable包已引入),默认可拖动  
  111.     },  
  112.     series:[//如果有多个分类需要显示,这在此处设置各个分类的相关配置属性  
  113.        //eg.设置各个分类在分类名称框中的分类名称  
  114.        //[label: 'Traps Division'},{label: 'Decoy Division'},{label: 'Harmony Division'}]  
  115.         //配置参数设置同seriesDefaults  
  116.     ],  
  117.       
  118.     legend: {  
  119.         show: false,//设置是否出现分类名称框(即所有分类的名称出现在图的某个位置)  
  120.         location: 'ne',     // 分类名称框出现位置, nw, n, ne, e, se, s, sw, w.  
  121.         xoffset: 12,        // 分类名称框距图表区域上边框的距离(单位px)  
  122.         yoffset: 12,        // 分类名称框距图表区域左边框的距离(单位px)  
  123.         background:''        //分类名称框距图表区域背景色  
  124.         textColor:''          //分类名称框距图表区域内字体颜色  
  125.         ..其他关于样式设计参考官方文档  
  126.     },  
  127.       
  128.     grid: {  
  129.         drawGridLines: true,        // wether to draw lines across the grid or not.  
  130.         gridLineColor: '#cccccc'    // 设置整个图标区域网格背景线的颜色  
  131.         background: '#fffdf6',      // 设置整个图表区域的背景色  
  132.         borderColor: '#999999',     // 设置图表的(最外侧)边框的颜色  
  133.         borderWidth: 2.0,           //设置图表的(最外侧)边框宽度  
  134.         shadow: true,               // 为整个图标(最外侧)边框设置阴影,以突出其立体效果  
  135.         shadowAngle: 45,            // 设置阴影区域的角度,从x轴顺时针方向旋转  
  136.         shadowOffset: 1.5,          // 设置阴影区域偏移出图片边框的距离  
  137.         shadowWidth: 3,             // 设置阴影区域的宽度  
  138.         shadowDepth: 3,             // 设置影音区域重叠阴影的数量  
  139.         shadowAlpha: 0.07           // 设置阴影区域的透明度  
  140.         renderer: $.jqplot.CanvasGridRenderer,  // renderer to use to draw the grid.  
  141.         rendererOptions: {}         // options to pass to the renderer.  Note, the default  
  142.                                     // CanvasGridRenderer takes no additional options.  
  143.     },                                
  144.       
  145.     /************************jqPlot各个不同插件的Option对象设置******************************/  
  146.       
  147.     // BarRenderer(设置柱状图的Option对象)  
  148.     //该Option对象适用与柱状图的series和seriesDefault属性的相关配置对象设置  
  149.     seriesDefaults: {  
  150.         rendererOptions: {  
  151.             barPadding: 8,      //设置同一分类两个柱状条之间的距离(px)  
  152.             barMargin: 10,      //设置不同分类的两个柱状条之间的距离(px)(同一个横坐标表点上)  
  153.             barDirection: 'vertical'//设置柱状图显示的方向:垂直显示和水平显示  
  154.                                  //,默认垂直显示 vertical or horizontal.  
  155.             barWidth: null,     // 设置柱状图中每个柱状条的宽度  
  156.             shadowOffset: 2,    // 同grid相同属性设置  
  157.             shadowDepth: 5,     // 同grid相同属性设置  
  158.             shadowAlpha: 0.8,   // 同grid相同属性设置  
  159.         }  
  160.     },  
  161.       
  162.     // Cursor(光标)  
  163.     // 鼠标移动到图中时,鼠标在图中显示形式,常与和高亮功能同时使用  
  164.     //此外,通过设置该属性的zoom相关属性来对图中某个区域钻取(就选定区域放大)  
  165.     //该配置对象直接在option下配置  
  166.       
  167.     cursor: {  
  168.         style: 'crosshair',     //当鼠标移动到图片上时,鼠标的显示样式,该属性值为css类  
  169.         show: true,              //是否显示光标  
  170.         showTooltip: true,      // 是否显示提示信息栏  
  171.         followMouse: false,     //光标的提示信息栏是否随光标(鼠标)一起移动  
  172.         tooltipLocation: 'se',  // 光标提示信息栏的位置设置。如果followMouse=true,那么该位置为  
  173.                                 //提示信息栏相对于光标的位置。否则,为光标提示信息栏在图标中的位置  
  174.                                 // 该属性可选值: n, ne, e, se, etc.  
  175.         tooltipOffset: 6,     //提示信息栏距鼠标(followMouse=true)或坐标轴(followMouse=false)的位置  
  176.         showTooltipGridPosition: false,//是否在信息提示栏中显示光标位置(取其据图标左和上边缘线像素距离)     
  177.         showTooltipUnitPosition: true,// 是否显示提示光标所在位置(取其在横纵轴上数据值)的信息栏  
  178.                     //注:注意此处与showTooltipGridPosition值区别,前者显示坐标值,该处显示的是数据值  
  179.         tooltipFormatString: '%.4P',    // 同Highlighter的tooltipFormatString  
  180.         useAxesFormatters: true,        // 同Highlighter的tooltipFormatString  
  181.         tooltipAxesGroups: [],  // show only specified axes groups in tooltip.  Would specify like:  
  182.                                 // [['xaxis', 'yaxis'], ['xaxis', 'y2axis']].  By default, all axes  
  183.                                 // combinations with for the series in the plot are shown.  
  184.           
  185.     },  
  186.       
  187.     // Dragable(拖动)  
  188.     //该配置对象通过seriesDefaults和series配置对象进行配置  
  189.     seriesDefaults: {  
  190.      dragable: {  
  191.          color: undefined,       // 当拖动数据点是,拖动线与拖动数据点颜色  
  192.          constrainTo: 'none',    //设置拖动的的范围: 'x'(只能在横向上拖动),  
  193.                                // 'y'(只能在纵向上拖动), or 'none'(无限制).  
  194.      },  
  195.     },  
  196.     // Highlighter(高亮)  
  197.     //设置高亮动作option属性对象  
  198.      //鼠标移动到某个数据点上时,该数据点增大并显示提示信息框  
  199.     //该配置对象直接在option下配置      
  200.     highlighter: {  
  201.         lineWidthAdjust: 2.5,   //当鼠标移动到放大的数据点上时,设置增大的数据点的宽度                                   
  202.                                 // 目前仅适用于非实心数据点        
  203.         sizeAdjust: 5,          // 当鼠标移动到数据点上时,数据点扩大的增量增量  
  204.         showTooltip: true,      // 是否显示提示信息栏  
  205.         tooltipLocation: 'nw',  // 提示信息显示位置(英文方向的首写字母): n, ne, e, se, s, sw, w, nw.  
  206.         fadeTooltip: true,      // 设置提示信息栏出现和消失的方式(是否淡入淡出)  
  207.         tooltipFadeSpeed: "fast"//设置提示信息栏淡入淡出的速度: slow, def, fast, 或者是一个毫秒数的值.  
  208.         tooltipOffset: 2,       // 提示信息栏据被高亮显示的数据点的偏移位置,以像素计。  
  209.         tooltipAxes: 'both',    // 提示信息框显示数据点那个坐标轴上的值,目前有横/纵/横纵三种方式。  
  210.                     //值分别为 x, y or xy.  
  211.         tooltipSeparator: ', '  // 提示信息栏不同值之间的间隔符号  
  212.         useAxesFormatters: true // 提示信息框中数据显示的格式是否和该数据在坐标轴上显示格式一致  
  213.         tooltipFormatString: '%.5P' // 用于设置提示信息框中数据显示的格式,前提条件是useAxesFormatters  
  214.                                     // 为false. 此时信息提示框中数据格式不再与坐标轴一致,而是以此为准  
  215.                                     //同时,该属性还支持html格式字符串  
  216.                                     //eg:'<b><i><span style="color:red;" mce_style="color:red;">hello</span></i></b> %.2f'  
  217.     },  
  218.       
  219.     // LogAxisRenderer(指数渲染器)  
  220.     // 该渲染器只有两个属性, 指数渲染器通过axesDefaults和axes配置对象进行配置  
  221.       
  222.     axesDefaults: {  
  223.         base: 10,                   // 指数的底数  
  224.         tickDistribution: 'even',   // 坐标轴显示方式:'even' or 'power'.  'even' 产生的是均匀分布于坐标  
  225.                                   //轴上的坐标刻度值 。而'power' 则是根据不断增大的增数来确定坐标轴上的刻度  
  226.     },  
  227.       
  228.     // PieRenderer(设置饼状图的OPtion对象)  
  229.     // 饼状图通过seriesDefaults和series配置对象进行配置  
  230.       
  231.     seriesDefaults: {  
  232.         rendererOptions: {  
  233.              diameter: undefined, // 设置饼的直径  
  234.             padding: 20,        // 饼距离其分类名称框或者图表边框的距离,变相该表饼的直径  
  235.             sliceMargin: 20,     // 饼的每个部分之间的距离  
  236.             fill:true,         // 设置饼的每部分被填充的状态  
  237.             shadow:true,       //为饼的每个部分的边框设置阴影,以突出其立体效果  
  238.             shadowOffset: 2,    //设置阴影区域偏移出饼的每部分边框的距离  
  239.             shadowDepth: 5,     // 设置阴影区域的深度  
  240.             shadowAlpha: 0.07   // 设置阴影区域的透明度  
  241.         }  
  242.     },  
  243.       
  244.     //pointLabels(数据点标签)  
  245.     //用于在数据点所在位置显示相关信息(非提示框性质)  
  246.     seriesDefaults: {  
  247.         pointLabels: {  
  248.             location:'s',//数据标签显示在数据点附近的方位  
  249.             ypadding:2   //数据标签距数据点在纵轴方向上的距离  
  250.         }  
  251.     }  
  252.       
  253.     // Trendline(趋势线)  
  254.     // 饼状图通过seriesDefaults和series配置对象进行配置  
  255.       
  256.     seriesDefaults: {  
  257.         trendline: {  
  258.             show: true,         // 是否显示趋势线  
  259.             color: '#666666',   // 趋势线颜色  
  260.             label: '',          // 趋势线名称  
  261.             type: 'linear',     //趋势线类型'linear'(直线), 'exponential'(幂值数线) or 'exp'  
  262.             shadow: true,       //  同grid相同属性设置  
  263.             lineWidth: 1.5,     // 趋势线宽度  
  264.             shadowAngle: 45,    //  同grid相同属性设置  
  265.             shadowOffset: 1.5,  //  同grid相同属性设置  
  266.             shadowDepth: 3,     //  同grid相同属性设置  
  267.             shadowAlpha: 0.07   // 同grid相同属性设置    
  268.         }  
  269.     }  
  270. }  
 

相关渲染器介绍   

1.dateAxisRenderer
    相关引用包:<script type="text/javascript" src="../plugins/jqplot.dateAxisRenderer.min.js" />
    该渲染器主要用于显示刻度为日期格式的坐标轴,它增强了javascript的本地数据处理能力,它几乎支持所有的日期格式。
    另外,该渲染器还提供了强大的格式化功能,它能将数据中日期字符串格式化为你需要的格式并显示在坐标轴的刻度线上。
    
    2.categoryAxisRenderer
  相关引用包:<script type="text/javascript" src="../plugins/jqplot.categoryAxisRenderer.min.js" />
  该渲染器主要用于将显示于刻度处的值显示与两个刻度之间,当然其表达意思也发生变化,因为刻度值处值表示某个点处的值,而它则代表某个范围内的值。
  该渲染器比较适合与柱状图联合使用。
  
  3.barRenderer
  相关引用包:<script type="text/javascript" src="../plugins/jqplot.barRenderer.min.js" />
  该渲染器主要用于显示柱状图,该渲染器能够很好的控制每个组(位于一个刻度值处的各个分类)内及组间距离,并且该柱状图能够水平显示。
  
  4.cursor
  相关引用包:<script type="text/javascript" src="../plugins/jqplot.cursor.min.js" /
  该渲染器主要用于鼠标移动到图中时,鼠标在图中显示形式,常用与和高亮功能同时使用。
  该渲染器相关引用包一旦引用到当前页面会,该渲染器立即生效。
  
  5.highlighter
  相关引用包:<script type="text/javascript" src="../plugins/jqplot.highlighter.min.js" />
  该渲染器主要用于当鼠标移动到图中数据点上时,在鼠标附近显示提示栏,并将相关信息显示在提示栏。默认显示值是横纵坐标轴刻度值。当然,提示框中信息是可以根据自身需要定制的。
   该渲染器相关引用包一旦引用到当前页面会,该渲染器立即生效。 
   
   6.logAxisRenderer
   相关引用包:<script type="text/javascript" src="../plugins/jqplot.logAxisRenderer.min.js" />
   该渲染器主要用于以指数计算的方式生成坐标轴上刻度值。默认情况下,刻度值是均匀显示的,但是刻度值也可以按指数增长的方式显示。
   
   7.ohlcRenderer
   相关引用包:<script type="text/javascript" src="../plugins/jqplot.ohlcRenderer.min.js" />
   该渲染器主要用于显示甘特图。通常情况下,该渲染器与dateAxisRenderer一起使用较多
   
   8.dragable
   相关引用包:<script type="text/javascript" src="../plugins/jqplot.dragable.min.js" />
   通过该渲染器,用户能够拖动某个数据点,jqplot会自动重画拖动后的新图表。同时,被拖动的数据点的数据值也随着拖动发生变化。
   
   
   9.trendline
   相关引用包:<script type="text/javascript" src="../plugins/jqplot.trendline.min.js" />
   该渲染器主要用于对现有数据进行线性回归计算,并自动将计算结果以趋势线的形式展示出来,当用户拖动某个数据点时,趋势线亦随用户拖动而变化。
   
   10.pointLabels
   相关引用包:<script type="text/javascript" src="../plugins/jqplot.pointLabels.min.js" />
   该渲染器主要用于将数据节点相关的的信息以标签的方式放于该数据节点附近;对于相应数据为空的,其标签不显示。

非常不错的下载技术资料的站点-51CTO下载 20 April 2012 23:45 Friday by 小心 浏览(20)

51CTO下载是个挺不错的技术资料下载网站,内容很丰富,以后可以经常逛逛~

git使用简单记录 16 April 2012 1:28 Monday by 小心 浏览(42)

git commit -a -m "msg"
# 将本地的git档案与github(远程)上的同步
git push
# 将github(远程)的git档案与本地的同步(即更新本地端的repo)
git pull
# 例如,pull指令其实包含了fetch(將变更复制回來)以及merge(合并)操作
git pull git://github.com/tom/****.git
 
# 另外版本控制系統的branch功能也很有意思,若同时修改bug,又要加入新功能,可以fork出一个branch:一个专门修bug,一个专门加入新功能,等到稳定后再merge合并
git branch bug_fix # 建立branch,名为bug_fix
git checkout bug_fix # 切换到bug_fix
git checkout master #切换到主要的repo
git merge bug_fix #把bug_fix这个branch和现在的branch合并
 
# 若有remote的branch,想要查看并checkout
git branch -r # 查看远程branch
git checkout -b bug_fix_local bug_fix_remote #把本地端切换为远程的bug_fix_remote branch并命名为bug_fix_local
 
# 还有其它可以查看repo状态的工具
git log #可以查看每次commit的改变
git diff #可以查看最近一次改变的內容,加上参数可以看其它的改变并互相比较
git show #可以看某次的变更
 
# 若想知道目前工作树的状态,可以輸入
git status

一个视频学习编程的不错网站 14 April 2012 20:41 Saturday by 小心 浏览(30)

初学者之路视频网
里面内容挺全面的...

IE6中select始终显示在上方的问题 01 April 2012 22:31 Sunday by 小心 浏览(70)

在ie6中,用程序控制隐藏层变为显示,如果前面有select元素,常常出现显示的层上架了个select选择框,不乱如何设置z-index也没有效果。

解决方案:

1. 在显示影藏层时把之前的select元素全部隐藏(用jquery选择器):

$("select").each(function(e){

$(this).hide();

});

当操作完后,再将select元素显示出来,只要把hide()变为show()。
效果不好

2.在隐藏层中加一个iframe,内容为空,大小能够覆盖select所在元素位置。

 

用程序控制select显示更加灵活。

table中tr的display:block在firefox下显示布局错乱问题 01 April 2012 22:26 Sunday by 小心 浏览(61)

在table中对于某一行需要显示时,使用:display:block属性,不需要显示时使用display:none属性,IE中正常,但在Firefox中会出现布局错乱,一般表现为所在行的单元格缩在一起,设置的宽度只对第一个单元格起作用。

解决方法:

将display:block改为display:‘’。

最近有些透支 01 April 2012 2:23 Sunday by 小心 浏览(54)

最近忙的有些透支。项目都赶在这个时候要结项,可惜还没有特别好的团队,很多事情还是要亲力亲为。从美工到程序,从设计到测试,都得自己干。于是怀念那躲在大公司角落默默轻松的上班日子...

有所失必有所得,只是还不知道得到什么。反正也没有时间好好思考一下,先应急做完手头的东东再说。希望这不要成为个死循环,还有许多想法要去尝试,趁还活着赶紧嘞!

BackTrack 5 R2 发布 03 March 2012 0:32 Saturday by 小心 浏览(133)

BT5R2 Released

discuz注册项设置关联字段选项 23 February 2012 5:37 Thursday by 小心 浏览(110)

可能需要修改:

1.source/function/function_profile.php文件

2.static/js/common.js文件

3.static/js/register.js文件

4.template/default/member/register.htm文件

 

discuz登录成功不出现“点击这里跳转”直接跳转的设置 22 February 2012 3:59 Wednesday by 小心 浏览(142)

最近做项目与discuz x2有关,以前没有仔细研究这个,这次赫然发现真是强大无比,基本上很多想要的功能都可以在后台设置,强。

默认discuz在登录成功时会跳转到一个页面并显示“如果你的浏览器没有自动跳转,请点击此链接”这个提示,但客户不想要出现这个提示而是直接进入后面的页面。

研究了一下,一下子没有找到设置的地方,遂马上动了改代码的念头,突然在后台界面设置下看到有个“提示信息”的设置区域,其中有一个“直接/快速跳转”信息列表。是啊,登录成功肯定也要传一个信息进去显示的,看看discuz的代码,showmessage()函数的确要处理这类信息。于是从代码中找到登录成功的信息变量名有:

location_login_succeed
login_succeed

分别将这两个变量名设置如“直接/快速跳转信息列表”,发现location_login_succeed成功。

原来后台也是可以设置的,强大的discuz.

点击查看原图

[转帖]报告称内地平均网速1.4M全球排名90名 02 February 2012 14:00 Thursday by 小心 浏览(111)

报告称内地平均网速1.4M全球排名90名

http://www.sina.com.cn  2012年02月02日 12:07  环球网微博
亚太国家或地区在2011年度的网速与增幅排名亚太国家或地区在2011年度的网速与增幅排名

  环球网记者王欢、王欣报道,据Record Japan新闻网2月1日消息,根据全球最大的CDN服务商美国Akamai公司1月31日公布的最新数据显示,2011年第四季度世界平均网速同比提升了39%,达2.7Mbps,平均连接速度最快的国家或地区是韩国,日本排在第三位。而中国大陆仅排在第90名。

  数据显示,2011年第四季度韩国平均网速同比增加18%,达16.7Mbps,中国香港以10.5 Mbps(同增14%)位居第二;日本则以8.9Mbps(同增5.8%)排在第三位;美国同比增幅达到了23%,以6.1Mbps位列第13名。中国大陆以1.4Mbps的网速排在第90名,不过其网速同比增幅达到了43%。

  此外,2011年度全球网速峰值最高的国家或地区仍为韩国,达46.8Mbps,其次分别是中国香港46.0Mbps、罗马尼亚34.5Mbps以及日本32.9Mbps。而在“网速低于256Kbps的慢速互联网用户比例”的比较中,印度以29%高居亚太地区第一名。中国大陆与新西兰并列第二,但这两个地区的慢速互联网用户比例仅为3.3%。

Notepad++快捷键整理 28 January 2012 15:00 Saturday by 小心 浏览(358)

Notepad++绝对是windows下进行程序编辑的神器之一,要更快速的使用以媲美VIM,必须灵活掌握它的快捷键,下面对notepad++默认的快捷键做个整理(其中有颜色的为常用招数):

1. 文件相关

快捷键 动作定义
Ctrl-O 打开文件
Ctrl-N 新建文件
Ctrl-S 保存文件
Ctrl-Alt-S 文件另存为
Ctrl-Shift-S 保存所有打开文件
Ctrl-P 打印
Alt-F4 退出程序
Ctrl-Tab 文件标签跳转,跳至下一个打开文件
Ctrl-Shift-Tab 文件标签跳转,跳至上一个打开文件
Ctrl-W 关闭当前文件
2.编辑相关

阅读全文>>

【转载】Web编程神器:Zen coding在notepad++中的用法 28 January 2012 13:20 Saturday by 小心 浏览(127)

ZEN CODING 用法

Zen Coding 的缩写规则 (其实就是CSS选择器)


  • 元素名 (div, p);
  • E#id 
    带id的元素 (div#content, p#intro, span#error);
  • E.class 
    带class的元素 (div.header, p.error.critial). id 和 class 可以连写,如: div#content.column.width;
  • E>N 
    子元素 (div>p, div#footer>p>span);
  • E+N 
    兄弟元素 (h1+p, div#header+div#content+div#footer);
  • E*N 
    多项元素 (ul#nav>li*5>a);
  • E$*N 
    带序号的元素 (ul#nav>li.item-$*5);

阅读全文>>

我的VIM配置 27 January 2012 23:24 Friday by 小心 浏览(223)

最近写web前端代码比较多,又把vim重新配置了一下,只适用于windows下,借鉴和拷贝了网上许多高人的配置和颜色模版(多谢各位达人的分享),写篇记录备份一下,有感兴趣的可以直接下载附件相应覆盖即可。

点击查看原图

阅读全文>>

2012到,新年要有新气象 19 January 2012 12:20 Thursday by 小心 浏览(114)

用心过好新一年...

修改BT5 R1的grub启动选项获得虚拟机窗口全屏显示 06 January 2012 0:58 Friday by 小心 浏览(363)

在虚拟机下安装了BT5 R1,不过虚拟机窗口有点小,每次启动bt的时候都不能全屏显示,经常要把鼠标跳出来控制滑动条。如图:

点击查看原图

虽然装了vmware tools,在X-windows情况下可以自动适应窗口大小,但登录启动startx之前还是不能全部内容显示。因此想把bt启动时的分辨率调小一些。

由于BT启动还是用grub来控制,因此去/boot/grub/目录下找相应的配置文件,一般配置文件是menu.lst之类的,BT采用的是grub.cfg文件来控制。找到:

set root='(hd0,1)'

search --no-floppy --fs-uuid --set 7b821db2-3a3f-4b3f-8a4f-203de73b562f

if loadfont /usr/share/grub/unicode.pf2 ; then

  set gfxmode=1024x768

  set gfxpayload=keep

  insmod gfxterm

  insmod vbe

  if terminal_output gfxterm ; then true ; else

    # For backward compatibility with versions of terminal.mod that don't

    # understand terminal_output

    terminal gfxterm

  fi

fi

将gfxmode=1024x768改成800x600

同时找到:

class gnu --class os {

recordfail

insmod ext2

set root='(hd0,1)'

search --no-floppy --fs-uuid --set 7b821db2-3a3f-4b3f-8a4f-203de73b562f

linux /boot/vmlinuz-2.6.39.4 root=UUID=7b821db2-3a3f-4b3f-8a4f-203de73b562f ro   text splash vga=791

initrd /boot/initrd.img-2.6.39.4

}

将vga=791改为788(788是16位颜色质量对应800x600分辨率的10进制代码,而791是1024x768的)。

保存grub.cfg文件,重新启动即可。

点击查看原图

用Excel做动态图表 19 December 2011 18:03 Monday by 小心 浏览(145)

最近做了一个Excel的小图表,客户有几个需求:

1.后台有公式计算出了一系列数据,但有些数据不满足要求,不需要进入绘图数据

2.输入不同的参数,能够将相应的绘图数据展示出来

3.图表的横纵坐标最大最小值能够根据绘图数据进行动态的调节,使图形尽可能展示的大,横坐标标签尽可能的不要太密集

为了实现以上的需求,进行了一些思索,最终还是用到了VBA编写了一些程序。另外在制作的过程中还加入了一些小tip,例如当光标移入绘图数据某一行,在图表上就会出现一个数据点,动态的在数据区域移动,图表上的点也动态的移动,效果如下:

点击查看原图

因为一些客户隐私,就不放源码上来了,有兴趣的朋友可以留言或发邮件进行交流。呵呵

分享2011年12月最新的10个超酷jQuery插件 13 December 2011 20:35 Tuesday by 小心 浏览(174)

Isotope

这个插件是一个十分不错的魔术布局插件,我们在推荐的插件中曾经介绍过它。

分享2011年12月最新的10个超酷jQuery插件

人脸识别(face defection)

一个帮助你识别人脸的jQuery插件,是不是感觉很牛啊,使用javascript也可以实现这样的算法。在线演示

分享2011年12月最新的10个超酷jQuery插件

阅读全文>>

一个非常有前途的服务端代码框架应用:node.js 12 December 2011 22:55 Monday by 小心 浏览(271)

今天突然心血来潮了解了一下前段时间听说的node.js,猛然发现这个东东真是很有前途,想法非常有创意,如果真正用好可以让服务端的应用压力大大减少。这个小样还是一个叫Ryan Dahl老外弄出来的(唉,又是老外的作品,丫中国程序员智商不比老外差,可惜都现实所迫做码农去了,悲哀啊~),它有以下几个特点:

  1. 使用google v8 js 引擎。
  2. 单线程,没有了锁和阻塞的概念,大大简化编程。
  3. 事件回调模型,所有的异步操作,比如数据库访问都是通过事件触发的。
  4. 完全还是javascript开发,而且不需要担心跨浏览器支持(因为是服务端)。

测试了一下node.js官网(http://nodejs.org/)首页的例子,的确有效果。

---------------------以下是node.js官网首页的"hello world"例子-------------------

下面是一个用node写的"hello world"应用,每次访问服务端请求都会返回一个"hello wold":

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');

运行node服务端,然后将上面的例子保存为example.js,并且用node运行这个程序

% node example.js
Server running at http://127.0.0.1:1337/

 

下面是一个简单的监听1337端口的TCP服务程序,它返回你发送给该端口的内容。

var net = require('net');

var server = net.createServer(function (socket) {
  socket.write("Echo server\r\n");
  socket.pipe(socket);
});

server.listen(1337, "127.0.0.1");

因为对于服务器来说相当于只运行了一个线程,它就是用来处理回送一个"hello world",对于web服务处理也就相当于只有一个链接。如果用传统的服务端开发平台,每个客户端访问请求都要新建一个链接就是为了要个"hello world",那也真是有些浪费。所以可以把一些不需要web server进行处理的事务用node来处理,试想是可以很大的缓解服务器端的压力的。

 

想着想着就睡着了~~呼呼