在winform中运用FusionCharts图表(一)

  目前,在一些网站上,运用了动画的FLASH的图表,给网页增色不少。下面两张图就是“中国站长联盟”网站给注册用户统计网站访问量的图表的截图。

  这种带有动画效果的图表,立马使得网页亲切起来。

  在网上搜索一番后,发现它使用的是FusionCharts的Flash图表。

  FusionCharts是InfoSoft Global公司的一个产品,InfoSoft Global 公司是专业的Flash图形方案提供商,他们还有几款其他的基于Flash技术的产品,都非常的漂亮。FusionCharts Free则是FusionCharts提供的一个免费版本,虽然免费,功能依然强大,图形类型依然丰富。

  FusionCharts是用XML文件作为数据的载体。它从外部的XML文件获取数据,并根据数据显示动画图表。在XML中定义图表的各种属性,和图表的数据。在应用的时候,我们只要更改XML文件即可。

  有关FusionCharts的图表的图形的基本元素,参看文章:FusionCharts Free图形的基本元素。这里不再赘述。

  下面,将详述其中的一个图表(2D Line)中的XML的属性说明。

  2D Line的XML的属性,官方文章地址:http://www.fusioncharts.com/free/docs/?/XMLOverview.html

  里面介绍了数十个属性,可是我们看看以下实例:  


<graph caption='Monthly Sales Summary'

  subcaption='For the year 2004' xAxisName='Month'

  yAxisMinValue='15000' yAxisName='Sales' decimalPrecision='0'

  formatNumberScale='0' numberPrefix='$' showNames='1'

  showValues='0' showAlternateHGridColor='1'

  AlternateHGridColor='ff5904' divLineColor='ff5904'

  divLineAlpha='20' alternateHGridAlpha='5' >
<set name='Jan' value='17400' hoverText='January'/>
<set name='Feb' value='19800' hoverText='February'/>
<set name='Mar' value='21800' hoverText='March'/>
<set name='Apr' value='23800' hoverText='April'/>
<set name='May' value='29600' hoverText='May'/>
<set name='Jun' value='27600' hoverText='June'/>
<set name='Jul' value='31800' hoverText='July'/>
<set name='Aug' value='39700' hoverText='August'/>
<set name='Sep' value='37800' hoverText='September'/>
<set name='Oct' value='21900' hoverText='October'/>
<set name='Nov' value='32900' hoverText='November' />
<set name='Dec' value='39800' hoverText='December' />
</graph>

  通篇只有15个属性,远少于官方文章介绍的属性。是这样的,如果在XML中没有输入这个属性,FusionCharts的2D Line图表就会用一个默认值,而各个属性的默认值,没有介绍,笔者通过测试,逐步摸索出各个属性的默认值。贴在这儿和大家交流,其中难免有疏漏,欢迎指正。

  bgColor:默认值ffffff。背景色,颜色采用6位16进制的字符表示,分别表示三个三色分量。
  bgAlpha:默认值100。背景Alpha,Alpha的取值范围是0—100。0是全透明,100是全不透明。
  bgSWF:默认值是空字符。背景SWF文件。

  canvasBgColor:默认值ffffff。画布背景色。
  canvasBgAlpha:默认值100。画布背景Alpha。
  canvasBorderColor:默认值000000。画布边框色,默认是黑色。
  canvasBorderThickness:默认值2。画布边框宽度,0为表示不显示边框。

  caption:默认值是空字符。图表的标题。
  subCaption:默认值是空字符。图表的子标题
  xAxisName:默认值是空字符。X轴文字
  yAxisName:默认值是空字符。Y轴文字
  yAxisMinValue:默认值是空字符。Y轴最小值。
  yAxisMaxValue:默认值是空字符。Y轴最大值。
  注:上面两个属性,如果用默认值的话,图表将采用数据,来计算Y轴的数值范围

  shownames:默认值1。1表示显示点的名字,0表示不显示。
  showValues:默认值1。1表示显示点的数值,0表示不显示。
  showLimits:默认值1。1表示显示图表的数值的限制区间,0表示不显示。
  rotateNames:默认值0。0表示点的名字显示时不旋转,1表示显示时旋转一个角度。
  animation:默认值1。1表示显示动画,0表示不显示。

  lineColor:默认值f8671d。折线颜色,该颜色是偏向橘黄的一种颜色。
  lineThickness:默认值2。折线宽度。
  lineAlpha:默认值100。折线Alpha。

  showShadow:默认值1。1表示显示折线阴影,0表示不显示。如果该属性为0,则下列shadow打头的属性都无效。
  shadowColor:默认值cccccc。阴影颜色,一种灰色。
  shadowThickness:默认值2。阴影宽度。
  shadowAlpha:默认值100。阴影Alpha 。
  shadowXShift:默认值2。阴影水平位移,可以是负值。
  shadowYShift:默认值2。阴影垂直位移,可以是负值。

  showAnchors:默认值1。1表示显示锚点,0表示不显示。如果该属性为0,则下列anchor打头的属性都无效。
  anchorSides:默认值是空字符。锚点的边数,默认值代表是圆形。可以取大于2的数值,3表示三角形,4表示正方形,依此类推。
  anchorRadius:默认值2。锚点的半径。
  anchorBorderColor:默认值f8671d。锚点的边框色。
  anchorBorderThickness:默认值2。锚点的边框宽度。
  anchorBgColor:默认值ffffff。锚点的背景色。
  anchorBgAlpha:默认值100。锚点的背景Alpha。
  anchorAlpha:默认值100。锚点的Alpha。
  注:anchorAlpha属性设为0时,也是不显示锚点,不过如果showhovercap为1时,鼠标移到点上时,还能看到提示文字。而showAnchors属性设为0时,虽然也不显示锚点,无论showhovercap取何值,鼠标移到点上时,是看不到提示文字。

  baseFont:默认值Verdana。画布内的字体。
  baseFontSize:默认值7。画布内的字体大小。
  baseFontColor:默认值000000。画布内的字体颜色。
  outCnvBaseFont:默认值Verdana。画布外的字体
  outCnvBaseFontSze:默认值7。画布外的字体大小
  outCnvBaseFontColor:默认值000000。画布外的字体颜色

  numberPrefix:默认值是空字符。数值的前缀字符,例如在表示金额的时候,可以用$符号。
  numberSuffix:默认值是空字符。数值的后缀字符,如果要使用后缀%,必须用%25标识。
  formatNumber:默认值1。1表示格式化显示数值,0表示正常显示数值。
  formatNumberScale:默认值1。1表示格式化数值,并作标记K、M。例如1000格式化为1K。0表示正常显示。
  decimalSeparator:默认值.。小数点的字符。
  thousandSeparator:默认值,。千位数的字符,只有formatNumber为1时才有效
  decimalPrecision:默认值2。数值的小数点的保留位数。
  divLineDecimalPrecision:默认值2。横线数值的小数点的保留位数。
  limitsDecimalPrecision:默认值2。限制数值区间的小数点的保留位数。

  zeroPlaneThickness:默认值2。0轴的线的宽度。
  zeroPlaneColor:默认值cccccc。0轴的线的颜色
  zeroPlaneAlpha:默认值100。0轴的Alpha。
  注:如果图表中没有0轴,则上面三个关于0轴的属性无效。

  numdivlines:默认值4。默认时图表的水平线有4根,将图表划分为5个水平块状。0表示没有水平线。
  divlinecolor:默认值cccccc。图表的水平线颜色。
  divLineThickness:默认值1。图表的水平线宽度。
  divLineAlpha:默认值100。图表的水平线的Alpha。
  showDivLineValue:默认值1。1表示显示水平线对应的数值。0表示不显示。
  showAlternateHGridColor:默认值0。1表示显示水平间隔,0表示不显示。
  alternateHGridColor:默认值cccccc。水平间隔的颜色。
  alternateHGridAlpha:默认值70。水平间隔Alpha,注意,这个是70,不是100。
  注:以上三个属性使得图表显示垂直颜色交错的效果。如本文的第二个图例所示。

  numVDivLines:默认值0。表示图表的垂直线的根数。0表示没有垂直线。
  VDivlinecolor:默认值cccccc。图表的垂直线颜色。
  VDivLineThickness:默认值1。图表的垂直线宽度。
  VDivLineAlpha:默认值100。图表的垂直线的Alpha。
  showAlternateVGridColor:默认值0。1表示显示垂直间隔,0表示不显示。
  alternateVGridColor:默认值cccccc。垂直间隔的颜色。
  alternateVGridAlpha:默认值70。垂直间隔Alpha,注意,这个是70,不是100。

  注:以上三个属性使得图表显示水平颜色交错的效果。垂直间隔的颜色显示在水平间隔的上方。

  showhovercap:默认值1。1表示鼠标移到点上时显示提示文字,0表示不显示。
  注:该属性生效还必须showAnchors为1。提示文字由三部分组成:点的hoverText、间隔符、点的数值。
  hoverCapBgColor:默认值f1f1f1。提示文字的背景颜色。
  hoverCapBorderColor:默认值cccccc。提示文字的边框色。
  hoverCapSepChar:默认值是,。间隔符的字符。

  chartLeftMargin:默认值15。图表的左外边距。
  chartRightMargin:默认值15。图表的右外边距。
  chartTopMargin:默认值15。图表的上外边距。
  chartBottomMargin:默认值15。图表的下外边距。

  以上属性在XML中都作为根节点graph的属性。

  <set>作为根节点的子节点,表示图表中的一个数据点。他也有自己的属性。例如:


<set name="Jan" value="54" color="3300FF"

hoverText="January" link="ShowDetails.asp%3FMonth=Jan" showName="1"/>

    name:必有。该数据点的名字。
    value:必有。该书据点的数值。
    color:默认值是空字符串。表示这个数据点到下个数据点连线的颜色。默认用LineColor的值
    hoverText:默认值是空字符串。该数据点的提示文字。
    alpha:默认值100。数据点Alpha。
    link:默认值是空字符串。该数据点的超链接
    showName:默认值1。1表示显示该数据点的名字,0表示不显示。
    注:shownames为0时,该属性为任何值都不会显示名字。shownames为1时,可以设置该属性为0,来限制某些数据点的显示名字。

  
  <trendLines>作为根节点的子节点,表示图表中的一系列趋势线。
  <line>作为<trendLines>的子节点,表示图表中的一条趋势线。(从实际来看,叫辅助线更适合)
  他也有自己的属性。例如:   


<line startValue='89.5' endValue='98' color='FF0000'

displayvalue='Roll. Avg.'

thickness='2' alpha='100' isTrendZone='0' showOnTop='1'/>

  startValue:必有。该趋势线的起始数值。
  endValue:必有。该趋势线的结束数值。
  color:默认值000000。该趋势线的颜色
  thickness:默认值1。该趋势线的宽度为1
  isTrendZone:默认值0。0表示趋势线是一条直线,1表示趋势线是一个矩形
  showOnTop:默认值0。0表示趋势线在折线的下方,1表示趋势线在折线的上方
  alpha:趋势线的Alpha。这个属性和isTrendZone有关,isTrendZone为0时,该属性的默认值是100;isTrendZone为1时,该属性的默认值为40。
 

  以上是笔者通过测试,写下各个属性的默认值,如果有错误,欢迎各位指正。

时间: 2024-09-24 18:09:04

在winform中运用FusionCharts图表(一)的相关文章

在winform中运用FusionCharts图表(二)

在上文"在winform中运用FusionCharts图表(一)"中,介绍了Line2D的FusionCharts图表的XML基本属性. 本文将介绍如何在WinForm中显示图表,并且通过按钮点击显示不同的图表. 在WinForm中显示SWF文件,有两种途径,一个是利用Flash控件:一个是利用WebBrowser控件:本文利用的是后者.WebBrowser控件通过显示包含SWF文件的HTML文件,来达到显示SWF文件的目的. 首先,准备好外部文件: FusionCharts.js:这

FusionCharts图表显示双Y轴双(多)曲线_javascript技巧

项目中需要FusionCharts图表显示双Y轴,好像FCF_MSLine.swf不可以这样,只能显示一个Y轴,多条线, 找了一下,用MSCombiDY2D.swf可以实现,生成图如下: 两个图表的数据是一样的,设置有一此不同而己 对应的XML文本如下: 复制代码 代码如下: <chart palette='2' caption='图表' rotateNames='0' showValues='0' divLineDecimalPrecision='1' limitsDecimalPrecisi

如何在C#的WinForm中制作饼状图和柱状图

饼状图|柱状图 当我们的软件需要各种饼状图和柱状图来表示数据时,我们或许会想到用Offices中的图形控件或是第三方控件,但现在的第三方控件大都需要注册,有些免费的控件会有开发商的标记等.而对于使用Offices的图形控件来说,并不能在程序中得于很好控制,其使用的简易程度也较低,所以在这我给出在C#中使用GDI+实现饼状图和柱状图跟数据库联接显示数据的方法.  using System;  using System.IO;//用于文件存取  using System.Data;//用于数据访问 

WinForm中类似WebForm中的CheckBoxList控件

web|控件 前些天,在.Net技术的论坛里面看到了有个帖子,我好像记得是怎么实现WinForm中类似WebForm中的CheckBoxList控件,我简单的实现了那样的一个控件 首先,你得建立一个控件项目,假如说是: 接着,你就添加一个类:CheckBoxCollection,它是个CheckBox的集合类 具体的代码如下 CheckBoxCollection.cs using System;using System.Collections;using System.Windows.Forms

让PowerPoint文档中的数据图表动起来

为了加强PowerPoint演示文稿的说服力,我们常常会在幻灯片中使用图表.如果使用图表后再为它设置一下序列动画,让数据演示也动起来,则通常能达到吸引听众注意力,强化演示说服力的良好效果. 第一步:创建PowerPoint图表 在PowerPoint中,新建一张幻灯片,在"幻灯片版式"任务窗格设置"内容版式"为"内容",然后切换到"幻灯片设计"任务窗格,为幻灯片选择一个恰当的设计模板(本例为"欢天喜地").

WinForm中的特殊窗体效果:渐变窗口和信息提示窗口

在WinForm中偶尔会遇到某些特殊效果:比如某个窗口刚开始的时候是完全透明的,随着时间的变化 ,窗体逐渐不透明,直至完全不透明.这是本文要探讨的窗体效果之一:渐变窗体. 还有一种窗 体效果:有些软件在某个特定的时间会显示一个提示窗体,这个窗体不是直接显示的,而是慢慢从窗口 的最下方向上移动,直至窗体完全显示就不再移动.当我们点击"确定"按钮之后,窗体由 从屏幕上逐渐下移,直至完全从屏幕上完全不显示.这也是本文讨论的窗体效果之一:移动提示信息窗 口. (一)渐变窗体 每个窗体都有一个O

浅谈.NET下的多线程和并行计算(九)Winform中多线程编程基础 下

在之前的文章中我们介绍过两种Timer和BackgroundWorker组件,在上文中我们提到过,强烈建议在UI 线程上操作控件,否则很容易产生人品问题.可以想到,上次介绍的两个Timer基于ThreadPool,回调方 法运行于不同于UI线程的新线程上,在这个方法中操作控件需要进行 Invoke或BeginInvoke.其实,还有 第三种System.Windows.Forms.Timer,它可以让回调事件在UI线程上执行,我们来做一个实验比较一下 System.Windows.Forms.T

浅谈.NET下的多线程和并行计算(八)Winform中多线程编程基础 上

首先我们创建一个Winform的应用程序,在上面添加一个多行文本框和一个按钮控件,按钮的事件如下 : Thread.Sleep(1000); StringBuilder sb = new StringBuilder(); for (int i = 0; i < 10000; i++) sb.Append("test"); string s = sb.ToString(); textBox1.Text = s; 首先我们可以把这个操作理解为一个非常耗时的操作,它至少占用1秒的时间.

WINFORM中绑定对象支持排序功能

在很久很久以前,DataSet操作是.Net中的一个重要使用手段,其实现在也是 . 在很久很久以前,我的项目操作方式是通过数据Fill一个DataSet,之后返回 给业务层做处理,之后给页面去显示. 随着时间积累,越来越不喜欢DataSet,我记得有人跟我说DataTable比 DataSet效率高,我不反驳也不认同,不知道. 我只知道DataSet如果不做任何处理在WebService上传输效率极其低下. 之后的编程模式中引入了对象的概念.至于对象的好处,在此不做论述. 这篇文章主要表述不是对