FusionCharts
上一篇已经介绍了一款免费的JS图表插件,这一篇再介绍另一款图表插件,同样是免费的,同样是基于JS的,使用依然很简单。该插件的官方网站,貌似也是收费的,我们可以下载对应的免费版FusionCharts free。FusionCharts是一个Flash的图表组件,它可以用来制作数据动画图表,使用FusionCharts ,您不必安装任何在您的服务器上。所有您需要做的只是复制粘贴的SWF文件(核心文件FusionCharts )到您的服务器,然后添加XML格式的数据源,其他任何复杂的操作都不用。
现在官方网站上提供的demo,支持XML和JSON两种格式的数据源,但是从FusionCharts free下载的免费版的只能使用XML作为数据源,还有就是收费版的flash效果比免费版的好,其他的好像没什么区别,免费版的提供的功能已经足够了。
下载之后,我们的文档结构图如下:
只需要将JSClass文件夹中的FusionCharts.js文件以及Charts文件夹中的*.swf文件添加到项目中,因为FusionCharts是一个Flash的图表组件,需要SWF文件来运行,所以这个.js文件和.swf文件是必不可少的,切记。
下面通过代码实现一个线形图(有两条线构成):
后台返回的XML数据:
/// <summary>
/// 加载指定条数的用户登录信息
/// </summary>
/// <param name="count"></param>
private void LoginInfoListXML(int count)
{
IList<dynamic> sysLoginLogList = sysLoginLogBLL.GetSysLoginLogList(count); IList<dynamic> sysLoginLogListByUserId = sysLoginLogBLL.GetSysLoginLogListByUserId(count); string jsonStr = "<graph caption='产品配置器使用统计' subCaption='' baseFontSize='12' baseFontColor='8E5C15' numVDivLines='30' numdivlines='4' showValues='0' anchorRadius='3' anchorBgAlpha='20' anchorSides='10' rotateNames='1' lineThickness='2' divLineAlpha='40' showAlternateHGridColor='1' ";
jsonStr += " alternateVGridAlpha='30' shadowAlpha='40' vDivlinecolor='8E5C15' limitsDecimalPrecision='0' divLineDecimalPrecision='0' decimalPrecision='0' >"; string category = "<categories>"; string dataset = ""; #region 每天访问人数
dataset += "<dataset renderAs='Line' seriesName='使用人数' color='1D8BD1' anchorBorderColor='1D8BD1' anchorBgColor='1D8BD1'>";
if (sysLoginLogList != null)
{
DateTime dt = DateTime.Now;
dt = dt.AddDays(-31);
for (int i = 0; i < 30; i++)
{
dt = dt.AddDays(1);
bool flag = false;
foreach (var item in sysLoginLogList)
{
if (dt.ToString("yyyy/MM/dd") == item.pvdata)
{
flag = true;
dataset += "<set value='" + item.pvcount + "'/>";
category += "<category name='" + item.pvdata + "'/>";
}
} if (!flag)
{
dataset += "<set value='" + 0 + "'/>";
category += "<category name='" + dt.ToString("yyyy/MM/dd") + "'/>";
}
}
}
category += "</categories>"; dataset += "</dataset>";
#endregion #region 每天的访问人次
dataset += "<dataset renderAs='Line' seriesName='使用人次' color='F1683C' anchorBorderColor='F1683C' anchorBgColor='F1683C'>";
if (sysLoginLogListByUserId != null)
{
DateTime dt = DateTime.Now;
dt = dt.AddDays(-31);
for (int i = 0; i < 30; i++)
{
dt = dt.AddDays(1);
bool flag = false;
foreach (var item in sysLoginLogListByUserId)
{
if (dt.ToString("yyyy/MM/dd") == item.pvdata)
{
flag = true;
dataset += "<set value='" + item.pvcount + "'/>";
}
} if (!flag)
{
dataset += "<set value='" + 0 + "'/>";
}
}
} dataset += "</dataset>"; ///拼接Categories
jsonStr += category;
///拼接dataset
jsonStr += dataset;
jsonStr += "</graph>"; #endregion strResponse = jsonStr;
}
前台页面接收XML数据,图表展示:
$(function () {
$.ajax({
type: "GET",
dataType: "json",
url: "/Chart/LoadingByCount",
error: function (XmlHttpRequest, textStatus, errorThrown) { alert(errorThrown); },
success: function (result) {
var array = result.StrResponse; var myChart = new FusionCharts(strSite + "Charts/FCF_MSLine.swf", "ChartId", "1000", "320", "0", "0");
//setDataXML("<xml></xml>");
//setDataURL("JsonData/data.xml");
myChart.setDataXML(array);
// myChart.addParam("wmode", "Opaque");
myChart.render("fsfcontainer");
}
});
});
前台页面中只需要将返回的XML数据作为数据源,其他的图表属性可以再详细的去网上查找资料。
FusionCharts的重要熟悉:setDataXML(为FusionCharts指定数据源,参数是XML格式的字符串)、setDataURL(为FusionCharts指定数据源,参数是真实的.XML的文件路径)、render(图表渲染)。
下面通过代码实现一个柱状图:
后台返回的XML数据:
/// <summary>
/// 加载指定条数的下载记录
/// </summary>
private void DownloadListXML(int count)
{
#region 下载记录
//int count = 30;
IList<dynamic> downloadList = sysDownloadLogBLL.GetDownloadList(count);
string xmlStr = "<graph caption='产品配置器下载统计' xAxisName='' yAxisName='' baseFontSize='12' baseFontColor='8E5C15' rotateNames='1' decimalPrecision='0' formatNumberScale='0' >"; string[] strColor = new string[] { "AFD8F8", "F6BD0F", "8BBA00", "FF8E46", "008E8E", "D64646", "8E468E", "588526", "B3AA00", "008ED6", "9D080D", "A186BE", "#9422FB", "#2BFB22", "#E8FB22", "#6C22FB", "#22A9FB",
"#B422FB","#FB8B22","#9C47E0","#513269","#431B61","#8E657F","#BA1B50","#87C04F","#8A791A","#2BC3CA","#2B46CA","#D3B4E0","#FBBDF3"}; if (downloadList != null)
{
DateTime dt = DateTime.Now;
dt = dt.AddDays(-31);
for (int i = 0; i < 30; i++)
{
dt = dt.AddDays(1);
bool flag = false;
foreach (var item in downloadList)
{
if (dt.ToString("yyyy/MM/dd") == item.pvdata)
{
flag = true;
xmlStr += "<set name='" + item.pvdata + "' value='" + item.pvcount + "' color='" + strColor[i] + "' />";
}
} if (!flag)
{
xmlStr += "<set name='" + dt.ToString("yyyy/MM/dd") + "' value='" + 0 + "' color='" + strColor[i] + "' />";
}
}
} xmlStr += "</graph>";
#endregion strResponse = xmlStr;
}
前台页面接收XML数据,图表展示:
$(function () {
$.ajax({
type: "GET",
dataType: "json",
url: "/Chart/LoadingByDownload",
error: function (XmlHttpRequest, textStatus, errorThrown) { alert(errorThrown); },
success: function (result) {
var array = result.StrResponse; ///下载记录chart
var downloadChart = new FusionCharts(strSite + "Charts/FCF_Column3D.swf", "ChartId2", "1000", "320", "0", "0");
downloadChart.setDataXML(array);
downloadChart.render("downloadcontainer");
}
});
});
线形图和柱状图的区别就是在后台拼接XML字符串的时候,XML中的元素构成不同,以及在前台页面中调用的 .swf 文件不同,线形图是FCF_MSLine.swf,而柱状图是FCF_Column3D.swf,其他的也就没什么不同了。
上传一张我们项目中的实际效果图吧,感觉还不错吧,感觉动手尝试一下把,很easy的~~~~
都是测试库,数据不太准确,绘制的图表看的不是很美观。。。
FusionCharts的更多相关文章
- JavaScript图表FusionCharts免费在线公开课,由印度原厂技术工程师主讲,10月13日发车
FusionCharts公开课达人还你做 轻松晋升图表大师 [开课时间]10月13日 14:30[主讲老师]印度原厂技术工程师[开课形式]网络在线公开课[活动费用]前50名免费 现在就可以报名哦 报 ...
- FusionCharts和highcharts 饼图区别!
FusionCharts ---------------脚本--------------- <script src="../../../fashioncharts/js/FusionC ...
- FusionCharts的使用方法(超详细)
今天统计价格变化规律的时候找到的一个很好的文档,很详细 一.简介 Ø FusionCharts 是InfoSoft Global 公司的一个产品,InfoSoft Global 公司是专业的Flash ...
- FusionCharts参数说明 (中文)
FushionCharts是把抽象数据图示化的套件,使用方便,配置简单.其相关参数中文说明如下. FusionCharts Free中文开发指南第二版.pdf 功能特性 animation ...
- 关于使用FusionCharts生成图表时出现invalid xml data错误提示的解决方法
FusionCharts的确功能是够强大的.收集的功能估计更强大.在初次使用时,对着手册,一步一步操作,就是生成图表工具不成功.一直报"Invalid xml data"错误.后面 ...
- FusionCharts饼图的图例属性
showLegend 是否在图表中显示图例 legendPosition 图例可以显示在图表的底部(BOTTOM)或右侧(RIGHT) legendCaption 可以为图例整体定义一个标题 lege ...
- 使用Fusioncharts实现后台处理进度的前台展示
本文要解决两个问题: 1.在ajax的数据交互中,如何获得后台的处理进度? 2.在前台界面中,如何使用图形化的方式展示后台处理进度? 关于第一个问题,不是本文的重点,简单说一下思路.因为HTTP协 ...
- FusionCharts中仪表盘相关属性
上上周用FusionCharts做了几个报表,里面有个仪表盘,当时查属性查疯了,现在把相关的一些属性记下来,方便以后查找. -------------------------仪表盘重要属性解析---- ...
- FusionCharts制作报表使用XML导入数据时出现的中文乱码问题
今天在使用FusionCharts制作报表时用XML导入数据,总是出现乱码问题,下面是我的解决方案. 让FusionCharts支持中文 刚刚将XML导入到html中后,在火狐浏览器一直报Invali ...
- FusionCharts教程文档下载
FusionCharts是一个Flash的图表组件,它可以用来制作数据动画图表,其中动画效果用的是Adobe Flash 8 (原Macromedia Flash的)制作的flash , Fusion ...
随机推荐
- java/android线程池详解
一,简述线程池: 线程池是如何工作的:一系列任务出现后,根据自己的线程池安排任务进行. 如图: 线程池的好处: 重用线程池中的线程,避免因为线程的创建和销毁所带来的性能开销. 能有效控制线程池的最大并 ...
- 电子图书的编目和OPAC揭示
摘 要 步入数字图书馆时代,电子资源日益增多,尤其在高校图书馆更加迅猛,怎样将图书馆的电子资源尽可能地整合在OPAC系统的检索功能里,以便更加简便.直观地利用,电子图书的编目已成为重要研究课题.本 ...
- 常见错误:Apple Mach-O Linker Error
常见错误描述: Apple Mach-O Linker Error这类错误的错误信息最后一行通常如下: Command /Developer/Platforms/iPhoneOS.platform/D ...
- 【转】Android 属性动画(Property Animation) 完全解析 (上)
http://blog.csdn.net/lmj623565791/article/details/38067475 1.概述 Android提供了几种动画类型:View Animation .Dra ...
- iOS 蒙板,图片叠加显示漏空部分
懒惰了一个月了,今天写写项目里遇到的一个问题. 图片a 和图片b相互叠加,a图片四周是白色的不规则图形,里面填充黑色. b图片是一张正常图片. 需求是叠加在一起,要求将b图片根据a图片的黑色形状 扣出 ...
- java学习路线(好资源大家分享)
对于入门java将近两年的时间,曾经迷惘过,一直想知道java的具体学习路线,看过了许许多多的java经验分享的帖子,评论,以及其他各种培训机构所谓的学习路线,发现没有一个符合我个人需求的学习路线,根 ...
- ASP.NET Web Forms的改进
虽然ASP.NET Web Forms不是vNext计划的一部分,但它并没有被忽视.作为Visual Studio 2013 Update 2的一部分,它重新开始支持新工具.EF集成和Roslyn. ...
- 树链剖分||dfs序 各种题
1.[bzoj4034][HAOI2015]T2 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a . 操作 2 :把 ...
- TCP/IP数据包结构具体解释
[关键词] TCP IP 数据包 结构 具体解释 网络 协议 一般来说,网络编程我们仅仅须要调用一些封装好的函数或者组件就能完毕大部分的工作,可是一些特殊的情况下,就须要深入的理解 网络数据包的结构, ...
- js模板引擎介绍搜集
js模板引擎越来越多的得到应用,如今已经出现了几十种js模板引擎,国内各大互联网公司也都开发了自己的js模板引擎(淘宝的kissy template,腾讯的artTemplate,百度的baiduTe ...