JScharts介绍(转载需注明。博客主页:http://blog.csdn.net/chszs)

一、JScharts介绍

JScharts是一个用于在浏览器直接绘制图表的JavaScript工具包。JScharts支持柱状图、圆饼图以及线性图,可以直接将这个图插入网页,JScharts图的数据可以来源于XML文件、JSON文件或JavaScript数组变量。JScharts兼容所有主流的浏览器,且使用时无需任何服务器端的插件或模块,是纯JavaScript组件,免费(含水印)。

    

JScharts是收费工具,非商业使用收费39美元/1 domain;商业使用收费79美元/1 domain。可免费使用,免费版含水印。要删除水印,需要一个域密钥。

二、JScharts新特性

1. 支持3D饼状图或3D柱状图

2. 多系列柱状图

3. 水平柱状图

4. 线性图支持动画显示

5. 新的自定义方法


当前JScharts最新版本是3.06版。

支持的浏览器版本为:Chrome 10以上,Chrome 1.5以上,IE 8以上,Safari 3.1以上,Opera 9以上等。

三、JScharts使用指南

1.下载JScharts库

从官网下载JScharts库,我们使用的是压缩包里面的jscharts.js文件。它大约150KB。

2. 使用JScharts库

在网页文件(如.html或.jsp)包含JScharts库。

<scripttype="text/javascript" src="js/jscharts.js"></script>

3. 定义容器

要在网页文件上显示JScharts生成的图像,需要把此图像放入网页容器。此网页容器我们通常用<div>标签来定义,而且必须强制性地为此DIV元素指定唯一的ID值。比如:

<divid="chartcontainer">This is just a replacement in case Javascriptis not available or used for SEO purposes</div>

注意:此DIV容器内的内容都会被JScharts图像所替代。

4. 显示JScharts图像

下面,我们需要写少量代码来显示一个线性图。首先要准备好图像所需的数据,我们可以用JavaScript数组来提供数据,数组中的每个元素都是由2个元素所组成。

代码如下:

<scripttype="text/javascript">

varmyData = new Array([10,20], [15,10], [20,30], [25,10], [30,5]);

varmyChart = new JSChart('chart_container', 'line');

myChart.setDataArray(myData);

myChart.draw();

</script>

完整的代码如下:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  2. <html>  
  3.  <head>  
  4.   <title>JScharts Test</title>  
  5.  </head>  
  6.  <body>  
  7. <script type="text/javascript" src="sources/jscharts.js"></script>  
  8. <div id="chartcontainer">This is just a replacement in case Javascript is not available or used for SEO purposes</div>  
  9. <script type="text/javascript">  
  10. var myData = new Array([10,20], [15,10], [20,30], [25,10], [30,5]);  
  11. var myChart = new JSChart('chartcontainer', 'line');  
  12. myChart.setDataArray(myData);  
  13. myChart.draw();  
  14. </script>  
  15.  </body>  
  16. </html>  

5. 在浏览器查看结果

1)线性图

用浏览器查看上面的文件,结果如下:




}       Customerize-line

}       <script type="text/javascript">

}         var myData = newArray([10, 2], [15, 0], [18, 3], [19, 6], [20, 8.5], [25, 10], [30, 9], [35,8], [40, 5], [45, 6], [50, 2.5]);

}         var myChart = newJSChart('graph', 'line');

}         myChart.setDataArray(myData);

}         myChart.setAxisColor('#656565');//设置x|y轴的颜色

}         myChart.setAxisNameColor('#4A4A4A');//设置x|y轴文字的颜色

}         myChart.setAxisNameFontSize(10);//设置x|y轴文字的大小

}         myChart.setAxisNameX('Horizontalaxis values'); //设置x轴的文字

}         myChart.setAxisNameY('Verticalaxis'); //设置y轴的文字

}         myChart.setAxisPaddingBottom(60);//设置x轴底部边距

}         myChart.setAxisPaddingLeft(180);//设置x轴的左边距

}         myChart.setAxisPaddingRight(170);//设置图表的右边距

}         myChart.setAxisPaddingTop(65);//设置图表顶部边距

}         myChart.setAxisValuesColor('#656565');//设置x|y轴的数字颜色

}         myChart.setAxisValuesNumberX(6);//设置x轴显示数字的个数

}         myChart.setBackgroundColor('#EEE');//设置背景颜色

}         myChart.setGrid(false);//设置不显示图标背后的网格




2)柱状图

将代码:

varmyData = new Array([10,20], [15,10], [20,30], [25,10], [30,5]);

varmyChart = new JSChart('chartcontainer', 'line');

改成:

varmyData = new Array(['Unit 1',20], ['Unit 2',10], ['Unit 3',30], ['Unit 4',10],['Unit 5',5]);

varmyChart = new JSChart('chartcontainer', 'bar');

则显示如下:




}       Customerize-bar

}       <script type="text/javascript">

}         var myData = newArray(['Jan', 2], ['Feb', 1], ['Mar', 3], ['Apr', 6], ['May', 8], ['Jun', 10],['Jul', 9], ['Aug', 8], ['Sep', 5], ['Oct', 6], ['Nov', 2], ['Dec', 4]);

}         var colors =['#CE0000', '#EF2323', '#D20202', '#A70000', '#850000', '#740000', '#530000','#850000', '#B00000', '#9C0404', '#CE0000', '#BA0000'];

}         var myChart = newJSChart('graph', 'bar');

}         myChart.setDataArray(myData);

}         myChart.colorizeBars(colors);

}         myChart.setDataArray(myData);

}         myChart.setAxisColor('#9D9F9D');//设置x|y轴的颜色

}         myChart.setAxisWidth(1);//设置x|y轴的宽度

}         myChart.setAxisNameX('Months');//x轴的文字

}         myChart.setAxisNameY('Values');//y轴的文字

}        myChart.setAxisNameColor('#655D5D');//x|y轴的文字的颜色

}         myChart.setAxisNameFontSize(9);//x|y轴的文字的大小

}         myChart.setAxisPaddingLeft(50);//x轴的左边距

}         myChart.setAxisValuesDecimals(1);//设置数字的小数点后的位数

}         myChart.setAxisValuesColor('#9C1919');//设置x|y轴的数字颜色

}         myChart.setTextPaddingLeft(10);//设置y轴文字的左边距

}         myChart.setBarValuesColor('#9C1919');//设置bar数据的颜色

}         myChart.setBarBorderWidth(0);//设置bar边框大小

}         myChart.setTitleColor('#8C8382');//设置标题文字的颜色

}         myChart.setGridColor('#5D5F5D');//设置内部GridView的颜色

}         myChart.draw();

}       </script> 




3)饼状图

将代码:

varmyChart = new JSChart('chartcontainer', 'bar');

改为:

varmyChart = new JSChart('chartcontainer', 'pie');

则显示如下:




}       Customerize-pie

}       <script type="text/javascript">

}         var myData = newArray(['Jan', 2], ['Feb', 1], ['Mar', 3], ['Apr', 6], ['May', 8], ['Jun', 10],['Jul', 9], ['Aug', 8], ['Sep', 5], ['Oct', 6], ['Nov', 2], ['Dec', 4]);

}         var colors =['#FFCC00', '#FFFF00', '#CCFF00', '#99FF00', '#33FF00', '#00FF66', '#00FF99','#00FFCC', '#FF0000', '#FF3300', '#FF6600', '#FF9900'];

}         var myChart = newJSChart('graph', 'pie');

}         myChart.setDataArray(myData);//设置数据

}         myChart.colorizePie(colors);//设置pie颜色

}         myChart.setPiePosition(308,170);//设置pie 位置

}         myChart.setPieRadius(95);//设置圆的缩放大小

}         myChart.setPieUnitsFontSize(8);//设置pie外文字的大小

}       myChart.setTextPaddingTop(30); //设置标题title的上边距

}         myChart.setPieUnitsColor('#474747');//设置pie外文字的颜色

}         myChart.setPieValuesColor('#474747');//设置pie内文字的颜色

}         myChart.setPieValuesOffset(-10);//设置pie内文字的margin

}         myChart.setTitleColor('#fff');

}         myChart.setSize(616,321); //设置背景大小

}         myChart.setBackgroundImage('chart_bg.jpg');//设置背景图片

}         //myChart.setTooltip(['Jan','custom<br>contents']);

}         myChart.draw();

}       </script> 





      jsCharts支持中文

   正常情况下jsCharts不支持中文字符显示,原因在于JSCharts输出的字符都是它“画”出来的,把代码反编译一下就能发现它最底部附带了数字、英文和常规字符的绘制数据,显而易见,中文是不可能加进去的。

以下插件可以使jsCharts支持中文。如下图所示:  用法有两种:
直接用jscharts_mb.js代替jscharts.js(已经附加到原代码尾部的版本)
加载jscharts.js之后再加载jscharts.plugin.mb.js(独立包含文件的版本)

以上两步任选其一,页面必须编码为UTF-8
若使用带有中文的xml数据,则xml数据源的编码也要转为UTF-8并且加入encoding="UTF-8"标签;
之后如果要让JSCharts支持中文字符显示,则在生成一个JSChart实例之后紧跟着执行一个函数patchMbString(),如:
var myChart = new JSChart('graph', 'pie');
       myChart.patchMbString();
     // 
接下来的代码和以前一样

         如果不执行patchMbString则和原来的没有区别,
此外还加入一个新方法 setFontFamily 用于自定义显示图表的字体,如:

myChart.setFontFamily("微软雅黑"); // 设置显示字体为微软雅黑

另外JSChart默认的字体大小只有8px,如果要较清晰地显示中文的话还得加大字号,这个用自带的接口就可以了,如:

myChart.setAxisValuesFontSize(9); // 设置柱状图和线条图的标尺字体大小为9px
myChart.setPieUnitsFontSize(10); // 
设置饼图的项目标识字体大小为10px

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值