JSCharts本身免费但不是开源的,如果商业应用的话要付费 - $149,
正常情况下这个东西不支持中文字符显示,
原因在于JSCharts输出的字符都是它“画”出来的,
把代码反编译一下就能发现它最底部附带了数字、英文和常规字符的绘制数据,
显而易见,中文是不可能加进去的。
这里给出一种使其支持中文字符显示的方法,
原理是修改JSCharts内部的字符处理函数不让它画字符,
而是直接输出一个常规的Canvas/VML文本对象,
至于具体怎么实现就不赘述了,
有兴趣可以看一下我附加上去的代码,没有混淆也没有压缩过。
代码是以插件形式发布的,没有改动JSCharts本身的任何代码,
可以把这个插件放到jscharts.js尾部,也可以放到独立的文件里再包含一下。
用法有两种:
1 直接用jscharts_mb.js代替jscharts.js;(已经附加到原代码尾部的版本)
2 加载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
具体可以看JScharts.pdf,有空我翻译一个出来。
参考链接:
1 在canvas中绘制文本 - http://www.iteye.com/topic/390235
分享到:
相关推荐
JSCharts本身免费,如果商业应用的话要付费,正常情况下这个东西不支持...这里给出一种使其支持中文字符显示的方法,原理是修改JSCharts内部的字符处理函数。 用法:加载jscharts.js之后再加载jscharts.plugin.mb.js
aotu.js 脚本开发常用的 -- 字符串指定字符 随机生成出汉字 -- 常用于引流脚本引流内容随机生成,汉字字符功能
一个JS函数,可以获取你当前输入的字符串的长度,其中中文字符和全角字符是2个长度
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。 方法二:match() var str = "123" var reg = RegExp(/3/); if(str.match(reg)){ //包含; } ...
C语言字符串替换函数strrpl支持中文汉字,解决含中文汉字,可能替换错误的情况。支持GBK、GB18030字符串。
本文实例讲述了js实现统计字符串中特定字符出现个数的方法。分享给大家供大家参考,具体如下: //js统计字符串中包含的特定字符个数 function getPlaceholderCount(strSource) { //统计字符串中包含{}或{xxXX}的...
js版 字符串快速检索
js 代码 1. /** 2. * 校验所有输入域是否含有特殊符号 3. * 所要过滤的符号写入正则表达式中,注意,一些符号要用'\'转义. 4. * 要转义的字符包括:1, 点号 . 5. * 2, 中括号 [] 6. * 3, 大括号 {} 7. ...
js计算字符串长度,可以输入中文、英文、数字、中英文数字混合等,最后计算结果为字符串所占字节个数
js处理特殊字符
纯js对字符串进行gb2312编码解码,如“中国”编码后成为:“%D6%D0%B9%FA”,很好用的
js截取某字符前的字符串 结合某字符的下标完成截取字符串 验证过可用。
js截取字符串 substr() 方法能够根据指定长度来截取子字符串。它包含两个参数,第一个参数 表示准备截取的子字符串起始下标,第二个参数表示截取的长度。 示例 1 在下面示例中使用 lastIndexOf() 获取字符串的最后一...
类似于QString的js类,支持中文的字符串操作,如字符的查找,比较,截取等
js把字符串转换成变量js把字符串转换成变量
类似于 `~!...如果您将编码结果传递给 decodeURI,那么将返回初始的字符串。encodeURI 方法不会对下列字符进行编码:”:”、”/”、”;” 和 “?”。请使用 encodeURIComponent 方法对这些字符进行
计算字符串中中文个数,判断是否含有中文,以及包含中文的字符串长度等问题
js替换字符串
js分割字符串 js分割字符串 js分割字符串 js分割字符串 js分割字符串 js分割字符串 js分割字符串 js分割字符串
JS去掉字符串空格 对字符串的操作很多。希望可以帮助到你。