JSCharts
JsCharts是一款轻量级的,基于js的图形报表工具,提供了线形图,柱状图,饼图,使用简单,相对其他的图表如FusionCharts来讲功能可能不是特别强大,但是对于一些要求不高的应用来讲已经够用了。官方网站 提供了很多demo,它本身是收费的,但也提供了免费版本,我们只需要用它的免费版本就OK了。
下载之后,我们的文档结构图如下:

文件中包含的有示例,源文件,帮助文档等文件,我们只需要将sources文件中的jscharts.js文件copy一下放到我们的项目中,在具体的页面中添加这个js的引用即可。 <script src="Scripts/charts/jscharts.js" type="text/javascript"></script>,此外页面中还得有一个容器来承载JsCharts,也就是图表的显示位置,如我们下面代码中的chartcontainer,在页面中要有这样的一个容器<div id="chartcontainer" align="center"></div>,而且id必须是唯一的。
在项目中我们是通过一般处理程序获取数据,然后将返回的数据经过处理后作为数据源赋给jschats。
JS代码:
$(function () {
$.ajax({
type: "GET",
dataType: "html",
url: "Charts_Ajax.ashx?oper=pvcount",
error: function (XmlHttpRequest, textStatus, errorThrown) { },
success: function (result) {
var myData = [];
var element;
if (result != null) {
result = eval(result);
for (var i = 0; i < result.length; i++) {
element = new Array();
element.push(result[i].pvdata);
element.push(result[i].pvcount * 1);
myData.push(element);
}
var myChart = new JSChart('chartcontainer', 'line');
myChart.setDataArray(myData);
myChart.setTitle('产品配置器访问量');
myChart.setTitleColor('#8E8E8E');
myChart.setTitleFontSize(11);
//设置X轴的显示名称
myChart.setAxisNameX('');
//设置Y轴的显示名称
myChart.setAxisNameY('');
myChart.setAxisColor('#8420CA');
myChart.setAxisValuesColor('#949494');
myChart.setAxisPaddingLeft(100);
myChart.setAxisPaddingRight(120);
myChart.setAxisPaddingTop(50);
myChart.setAxisPaddingBottom(40);
///2.000 小数位数
//myChart.setAxisValuesDecimals(3);
///设置x轴上显示的值的个数,此值会自动调整,对饼图无效
myChart.setAxisValuesNumberX(15);
///设置y轴上显示的值的个数,此值会自动调整,对饼图无效
//myChart.setAxisValuesNumberY(10);
///是否显示x轴上的刻度值
myChart.setShowXValues(false);
myChart.setGridColor('#C5A2DE');
myChart.setLineColor('#BBBBBB');
///设置线条的宽度
myChart.setLineWidth(2);
myChart.setFlagColor('#9D12FD');
myChart.setFlagRadius(4);
//myChart.setGraphExtend(true);
for (var i = 0; i < result.length; i++) {
myChart.setTooltip([result[i].pvdata, result[i].pvcount]);
}
///在x轴上添加标签,其参数是两个值构成的一个数组,第一个参数为标签在x轴上的位置,第二个值为标签显示的内容。
//myChart.setLabelX([1997, '1997']);
myChart.setSize(1200, 400);
//myChart.setBackgroundImage('/Images/chart_bg.jpg');
myChart.draw();
}
}
});
});
Charts_Ajax.ashx代码:
/// <summary>
/// 登录次数 jschart
/// </summary>
private void LoginInfoList()
{
IList<dynamic> sysLoginLogList = sysLoginLogBLL.GetSysLoginLogList(searchCount); string jsonStr = ""; jsonStr += "[";
if (sysLoginLogList != null)
{
DateTime dt = DateTime.Now;
dt = dt.AddDays(-16);
for (int i = 0; i < 15; i++)
{
dt = dt.AddDays(1);
bool flag = false;
foreach (var item in sysLoginLogList)
{
if (dt.ToString("yyyy/MM/dd") == item.pvdata)
{
flag = true;
jsonStr += "{\"pvcount\":\"" + item.pvcount + "\",\"pvdata\":\"" + item.pvdata + "\"},";
}
} if (!flag)
{
jsonStr += "{\"pvcount\":\"" + 0 + "\",\"pvdata\":\"" + dt.ToString("yyyy/MM/dd") + "\"},";
}
} jsonStr = jsonStr.ToString().Substring(0, jsonStr.ToString().Length - 1);
} jsonStr += "]"; //JavaScriptSerializer jsonSerializer = new JavaScriptSerializer(); //string json = jsonSerializer.Serialize(sysLoginLogList); strResponse = jsonStr;
}
一般处理程序只是将查询到的数据以json格式的字符串返回,在前台的页面中需要对这个返回值处理,由于JsChart 的数据格式是一个二维数组,我们会看到examples中所有的示例的数据格式也都是二维数组,如var myData = new Array(['2005', 2], ['2006', 1], ['2007', 3], ['2008', 6]);,所以需要将返回的json字符串变成一个二维数组,否则你一点会遇到这样的一个错误:
JSChart:Input data in wrong format for selected chart type
这就是因为数据格式导致的。也许你会这样做:声明一个数组,
var data = [];
然后data.push(str);
这样做是不对的,因为你必须保证你push进去的是一个数组,因为我们要构造的是一个二维数组,不是一个一维的字符串数组。
下图是我们的实际效果图,你也可以根据给出的方法快速的绘制一个图表,很easy的~~~~

都是测试库,数据不太准确,绘制的图表看的不是很美观。。。
JSCharts的更多相关文章
- JsCharts图表的介绍和简单使用
一.JSCharts介绍 JScharts是一个用于在浏览器直接绘制图表的javascript工 具包.JScharts支持柱状图.圆饼图以及线性图,可以直接将这个图插入网页, JScharts图的数 ...
- JQuery中jsCharts图表插件(十)
一:1.jsCharts图表插件 注意:从官方下来的例子都没指定页面编码,在这种情况下,浏览器就会使用默认设置中文编码:GB2312,GBK等:导致无法执行. 请在html代码中的<head&g ...
- 初识js-charts和E-charts
在前端开发的过程中,经常会使用到图表相关的东西,很多时候,图表在展示数据方面有着无与伦比的优势.下面我们就来看看两个常用的图表相关的插件jscharts和ECharts.前者,功能相对单一,但是不依赖 ...
- 用dygraphs图表分析xdebug的trace结果
2015年12月1日 19:44:23 推荐这一篇用百度的ECharts图表工具 本文用到的js图表库: dygraphs 注: 测试数据量 19108个数据点, 最好将数据的量级调小, 这样渲染会很 ...
- JSChart_页面图形报表
首先在页头的"head"中加上: $(document).ready(function() { //myData与colors变量 是做演示用的,可以直接赋值给myChart就可 ...
- JSChart
转自:http://www.cnblogs.com/riverback-moon/archive/2010/10/11/1848071.html JSChart是一个轻量级的在线图表生成工具,本身十 ...
- 分享10个Js的小型库,效果真的很棒
1.$fx()简介:$fx()是一个轻量级的动画库,一些复杂的动画,可以由多个简单的动画效果进行组合,但是提供的是混淆压缩过的代码,对于研究动画源码的朋友可能特别不爽API:http://fx.ine ...
- 转-——推荐几个web中常用的一些js图表插件 - zccst
http://www.tuicool.com/articles/bqq2Qn 作者:zccst 我自己用过fusioncharts和highchart. jQuery插件有: TufteGraph f ...
- JavaWeb图表插件的小研究
背景 近期的一个项目中,对数据的统计分析有非常大的要求,这就要求有一款非常强大的报表.图表插件.因此,组长给分了任务.让我们各自去研究不同的图表插件.用了一两天的时间,对java这块的图表插件做了一个 ...
随机推荐
- 集成iscroll 下拉加载更多 jquery插件
一个插件总是经过了数月的沉淀,不断的改进而成的.最初只是为了做个向下滚动,自动加载的插件.随着需求和功能的改进,才有了今天的这个稍算完整的插件. 一.插件主功能: 1.下拉加载 2.页面滚动到底部自动 ...
- Cortex-M3 Context Switching
http://www.embedded.com/design/embedded/4231326/Taking-advantage-of-the-Cortex-M3-s-pre-emptive-cont ...
- Mono4安装教程
一. 更新系统 yum –y update 二.安装Mono源码安装需要的库 yum -y install gcc gcc-c++ bison pkgconfig glib2-devel gettex ...
- EasyUI-Tab 标签添加右键菜单
在网上看了很多demo 自己实现了一个效果如下 <!doctype html> <html> <head> <meta http-equiv="co ...
- OC基础之方法和参数的命名规范
以前学过C/C++/Java/C#语言的童鞋可能刚开始对于OC的方法和参数的命名规范大为不爽 举例来说,如下一个OC方法: - (void)tableView:(UITableView *)table ...
- jQuery.validate的this.optional(element)作用
今天使用同事扩展jquery validate函数mobile验证时,require值传入false发现也会验证, 去掉mobile后就没这个问题,把mobile替换成自带的digits也没有这个问题 ...
- HANDLER命令与实现
MySQL“自古以来”都有一个神秘的HANDLER命令,而此命令非SQL标准语法,可以降低优化器对于SQL语句的解析与优化开销,从而提升查询性能.看到这里,可能有小伙伴不淡定了,这么好的东西为啥没广泛 ...
- 第十二天--Property List和NSUserDefaults
转自:http://appleparty.diandian.com/post/2012-05-24/9098104219 Property List (属性表) 定义:Property List文件 ...
- 深入理解 CSS 中的行高与基线
1.基本概念 1. 基线.底线.顶线.中线 注意:基线(base line)并不是汉字文字的下端沿,而是英文字母“x”的下端沿. 2. 内容区 内容区是指底线和顶线包裹的区域(行内元素display ...
- Ubuntu下VSFTPD(六)(常见FTP命令及其功能) (
常见FTP命令及其功能 FTP 命令 功能 FTP 命令 功能 ls 显示服务器上的目录 ls [remote-dir][local-file] 显示远程目录remote-dir,并存入本地文件 ...