使用FusionCharts出柱状图和饼状图
在最近的项目中,需要使用出图,能够查看柱状图,饼状图等效果,刚开始我们用JS写的效果,发现效果不理想,找了一个JS插件发现效果还是不理想,客户也不满意,客户希望要很炫的效果,最后我们使用了FusionCharts。
FusionCharts是一个Flash的图表组件,它可以用来制作数据动画图表,其中动画效果用的是Adobe Flash 8 (原Macromedia Flash的)制作的flash , FusionCharts可用于任何网页的脚本语言类似于HTML , .NET,ASP , JSP技术的, PHP , ColdFusion等,提供互动性和强大的图表。使用XML作为其数据接口, FusionCharts充分利用流体美丽的Flash创建紧凑,互动性和视觉逮捕图表。当然他的有点我就不说了,百科上说的很多...
为了很炫,我们就使用的是FusionCharts里面的MSColumn3D.swf和Pie3D.swf的3D效果,具体不说了,直接贴代码了,这样看着清楚。
(1)创建柱状图的关键代码
public void CreateChart(List<AJSLTJModel> list)
{
string strCategories;
string strCategories2; strchartXML = "<graph formatNumber='0' formatNumberScale='0' >";
strchartXML2 = "<graph formatNumber='0' formatNumberScale='0' >";
strCategories = "<categories>";
strCategories2 = "<categories>"; string strDataCurr1 = "<dataset seriesName='登记数量' color='AFD8F8'>";
string strDataPrev1 = "<dataset seriesName='登记面积' color='F6BD0F'>"; for (int i = 0; i < list.Count; i++)
{
AJSLTJModel ajstjModel = list[i];
string catagry = ajstjModel.ResYear + "年" + ajstjModel.ResMonth + "月";
string resTJSL = ajstjModel.ResDJSL.ToString();
string resTJMJ = ajstjModel.ResDJMJ.ToString();
strCategories += "<category name='" + catagry + "' />";
strCategories2 += "<category name='" + catagry + "' />";
strDataCurr1 += "<set value='" + resTJSL + "' />";
strDataPrev1 += "<set value='" + resTJMJ + "' />"; } strCategories += "</categories>";
strCategories2 += "</categories>"; strDataCurr1 += "</dataset>";
strDataPrev1 += "</dataset>"; strchartXML += strCategories + strDataCurr1 + "</graph>";
strchartXML2 += strCategories2 + strDataPrev1 + "</graph>";
ClientScript.RegisterStartupScript(this.GetType(), "showDiv", " <script> updateChart(\"" + strchartXML + "\",\"" + strchartXML2 + "\") </script> "); }
(2)创建饼状图的关键代码
public void CreateChartPie(List<AJSLTJModel> list)
{
strchartXMLPie1 = "<chart palette='4' decimals='0' enableSmartLabels='1' enableRotation='0' bgColor='99CCFF,FFFFFF' bgAlpha='40,100' bgRatio='0,100' bgAngle='360' showBorder='1' startingAngle='70' >";
strchartXMLPie2 = "<chart palette='4' decimals='0' enableSmartLabels='1' enableRotation='0' bgColor='99CCFF,FFFFFF' bgAlpha='40,100' bgRatio='0,100' bgAngle='360' showBorder='1' startingAngle='70' >"; string strDataCurr1 = "";
string strDataCurr2 = ""; for (int i = 0; i < list.Count; i++)
{
AJSLTJModel ajstjModel = list[i];
string catagry = ajstjModel.ResYear + "年" + ajstjModel.ResMonth + "月";
string resTJSL = ajstjModel.ResDJSL.ToString();
string resTJMJ = ajstjModel.ResDJMJ.ToString();
strDataCurr1 += "<set label='"+catagry+"' value='"+resTJSL+"' />";
strDataCurr2 += "<set label='" + catagry + "' value='" + resTJMJ + "' />";
}
strchartXMLPie1 += strDataCurr1 + "</chart>";
strchartXMLPie2 += strDataCurr2 + "</chart>"; ClientScript.RegisterStartupScript(this.GetType(), "showDiv", " <script> updatePie(\"" + strchartXMLPie1 + "\",\"" + strchartXMLPie2 + "\") </script> "); }
(3)前台JS代码:
function updateChart(strchartXML,strchartXML2) {
var chart1div = document.getElementById("chart1div");
if (chart1div != null) {
var chart1 = new FusionCharts("../FusionChart/MSColumn3D.swf", "chart1Id", screen.width - 400, screen.height - 500, "0", "0");
chart1.addParam("wmode", "Opaque");
chart1.setDataXML(strchartXML);
chart1.render("chart1div");
}
var chart2div = document.getElementById("chart2div");
if (chart2div != null) {
var chart2 = new FusionCharts("../FusionChart/MSColumn3D.swf", "chart2Id", screen.width - 400, screen.height - 500, "0", "0");
chart2.addParam("wmode", "Opaque");
chart2.setDataXML(strchartXML2);
chart2.render("chart2div");
}
}
function updatePie(strchartXMLPie1, strchartXMLPie2) {
var pie1div = document.getElementById("pie1div");
if (pie1div != null) {
var pie1 = new FusionCharts("../FusionChart/Pie3D.swf", "pie1Id", screen.width - 400, screen.height - 500, "0", "0");
pie1.addParam("wmode", "Opaque");
pie1.setDataXML(strchartXMLPie1);
pie1.render("pie1div");
}
var pie2div = document.getElementById("pie2div");
if (pie2div != null) {
var pie2 = new FusionCharts("../FusionChart/Pie3D.swf", "pie2Id", screen.width - 400, screen.height - 500, "0", "0");
pie2.addParam("wmode", "Opaque");
pie2.setDataXML(strchartXMLPie2);
pie2.render("pie2div");
}
}
(4)还是看看效果图吧
OK,很炫吧,打开的时候如同雨后春笋,3D效果就是炫....使用完毕
使用FusionCharts出柱状图和饼状图的更多相关文章
- FusionCharts数据展示成饼状图、柱状图和折线图
FusionCharts数据展示成饼状图.柱状图和折线图 本文以展示柱状图为例进行介绍,当然这仅仅是一种方法而已:还有很多方法可以用于展示图表,例如echarts,自定义图表标签.使用jfreecha ...
- FusionChart实现柱状图、饼状图的动态数据显示 附Demo
最近做的项目中需要用饼状图显示——'问卷调查'的统计结果(之前用过FusionChart做过柱状图的数据展示,那还是两年前的事了),在网上查了下FusionChart实现饼状图显示方面的资料,却发现资 ...
- FusionChart实现柱状图、饼状图的动态数据显示
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- WPF、Silverlight项目中使用柱状图、饼状图、折线图
在开发的过程中,可能会遇到柱状图.饼状图.折线图来更好的显示数据,最近整理了一下,遂放出来望需要的朋友可以参考.本文仅仅是简单显示,如需复杂显示效果请参考官网代码示例.----本文代码使用WPF,Si ...
- 前端数据统计用做Bootstrap的一些柱状图、饼状图和折线图案例
Bootstrap,来自 Twitter,是目前最受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷. Bootstrap ...
- echarts 柱状图和饼状图动态获取后台数据
运用echarts来实现图表 1.首先下载echarts包 http://echarts.baidu.com/echarts2/doc/example.html,在这里我下载的是 2.将echart ...
- iOS:使用贝塞尔曲线绘制图表(折线图、柱状图、饼状图)
1.介绍: UIBezierPath :画贝塞尔曲线的path类 UIBezierPath定义 : 贝赛尔曲线的每一个顶点都有两个控制点,用于控制在该顶点两侧的曲线的弧度. 曲线的定义有四个点:起始点 ...
- DevExpress使用之ChartControl控件绘制图表(多坐标折线图、柱状图、饼状图)
最近因为公司项目需要用到WinForm的DecExpress控件,在这里把一些使用方法总结一下. DevExpress中有一个专门用来绘制图表的插件ChartControl,可以绘制折线图.饼状图.柱 ...
- Java创建柱状图及饼状图
Java创建图表其实还是很方便的,但是要引入相关的jar包.如下 jfreechart.jar jcommon,jar gnujaxp.jar 其中最主要的是jfreechart.jar. 下面就让我 ...
随机推荐
- Linux Ubuntu 14.04安装LAMP(Apache+MySQL+PHP)网站环境
从虚拟主机到VPS/服务器的过度,对于普通的非技术型的站长用户来说可能稍许有一些困难,麦子建议我们如果能够在虚拟主机环境中满足建站需要的, 还是用虚拟主机比较好.除非我们真的有需要或者希望从虚拟主机过 ...
- android 布局页面文件出错故障排除Exception raised during rendering: java.lang.System.arraycopy([CI[CII)V
今天在看布局文件的时候出现 android 布局页面文件出错故障排除Exception raised during rendering: java.lang.System.arraycopy([CI[ ...
- 《Windows驱动开发技术详解》之派遣函数
驱动程序的主要功能是负责处理I/O请求,其中大部分I/O请求是在派遣函数中处理的.用户模式下所有对驱动程序的I/O请求,全部由操作系统转化为一个叫做IRP的数据结构,不同的IRP数据会被“派遣”到不同 ...
- storage size of 'xxx' isn't known问题出现的可能原因之一
storage size of 'value' isn't known问题出现的可能原因之一 有可能是头文件没有包含起来,所以会出现这种问题可以从以下几个方面来查找原因:1.若是结构体类型,类型是否写 ...
- vbs和qtp一些脚本
********************************************************************************************** 用vbs调 ...
- Eclipse的WorkingSet使用(转载)
Eclipse作为一款流行的JavaIDE开发工具,其有很多好用的功能为我们的开发提供帮助.但我们的工作空间中有很多项目时,管理起来就很头疼了. 但是我们又不想更换工作区间,所以我们需要一个更加有效的 ...
- nefu 1029 字符串
Description 给定一个字符串,现在要你从这个字符串中找到第一个只出现一次的字符 ,很简单吧! 快敲代码,动作! Input 多组输入,每行一个字符串(小写字母a~z)字符串长度不超过50 O ...
- CentOS7 PostgreSQL 主从配置( 二)
同步流复制配置PostgreSql的流复制是异步的,缺点是Standby上的数据落后于主库上的数据,如果使用Hot Standby做读写分离,就会存在数据一致性的问题.PostgreSql9.1版本后 ...
- 缩放系列(三):一个可以手势缩放、拖拽、旋转的layout
弄了一个下午,终于搞出来了,PowerfulLayout 下面是一个功能强大的改造的例子: 可以实现以下需求: 1.两个手指进行缩放布局 2.所有子控件也随着缩放, 3.子控件该有的功能不能丢失(像b ...
- Ckeditor配置
配置参考文档,主要将ckeditor中的(adapters.images.lang.plugins.skins.themes.ckeditor.js.config.js.contents.css)解压 ...