• 背景

最近由于工作需要,再次接触到了Fusioncharts,但也有不足之处,现在官网上似乎是不支持flash的版本了,只能看到html5相关的javascript版本,无奈再次从网上搜索到了一些别人个人总结的一些用法。

  • 总结

fusioncharts的flash版本的xml渲染数据结构常有element包含以下:



1 <graph>
2 <categories>
3   <category Name='区间出现记录数(单位:个)' ShowName='1' />
4
5   。。。
6 </categories>
7 <dataset SeriesName='小于-90dBM' Color='9D080D' ShowValues='1' Alpha='100'>
8   <set Value='1000' Alpha='80' />
9
10   。。。。
11 </dataset>
12
13 。。。
14 </graph>


  • 这里边的graph属性包含一下:

功能特性 

animation 是否动画显示数据,默认为1(True)

showNames 是否显示横向坐标轴(x轴)标签名称

rotateNames 是否旋转显示标签,默认为0(False):横向显示

showValues 是否在图表显示对应的数据值,默认为1(True)

yAxisMinValue 指定纵轴(y轴)最小值,数字

yAxisMaxValue 指定纵轴(y轴)最小值,数字

showLimits 是否显示图表限值(y轴最大、最小值),默认为1(True)

图表标题和轴名称

caption 图表主标题

subCaption 图表副标题

xAxisName 横向坐标轴(x轴)名称

yAxisName 纵向坐标轴(y轴)名称

图表和画布的样式

bgColor 图表背景色,6位16进制颜色值

canvasBgColor 画布背景色,6位16进制颜色值

canvasBgAlpha 画布透明度,[0-100]

canvasBorderColor 画布边框颜色,6位16进制颜色值

canvasBorderThickness 画布边框厚度,[0-100]

shadowAlpha 投影透明度,[0-100]

showLegend 是否显示系列名,默认为1(True)

字体属性

baseFont 图表字体样式

baseFontSize 图表字体大小

baseFontColor 图表字体颜色,6位16进制颜色值

outCnvBaseFont 图表画布以外的字体样式

outCnvBaseFontSize 图表画布以外的字体大小

outCnvBaseFontColor 图表画布以外的字体颜色,6位16进制颜色值

分区线和网格

numDivLines 画布内部水平分区线条数,数字

divLineColor 水平分区线颜色,6位16进制颜色值

divLineThickness 水平分区线厚度,[1-5]

divLineAlpha 水平分区线透明度,[0-100]

showAlternateHGridColor 是否在横向网格带交替的颜色,默认为0(False)

alternateHGridColor 横向网格带交替的颜色,6位16进制颜色值

alternateHGridAlpha 横向网格带的透明度,[0-100]

showDivLineValues 是否显示Div行的值,默认??

numVDivLines 画布内部垂直分区线条数,数字

vDivLineColor 垂直分区线颜色,6位16进制颜色值

vDivLineThickness 垂直分区线厚度,[1-5]

vDivLineAlpha 垂直分区线透明度,[0-100]

showAlternateVGridColor 是否在纵向网格带交替的颜色,默认为0(False)

alternateVGridColor 纵向网格带交替的颜色,6位16进制颜色值

alternateVGridAlpha 纵向网格带的透明度,[0-100]

数字格式

numberPrefix 增加数字前缀

numberSuffix 增加数字后缀 % 为 '%25'

formatNumberScale 是否格式化数字,默认为1(True),自动的给你的数字加上K(千)或M(百万);若取0,则不加K或M

decimalPrecision 指定小数位的位数,[0-10] 例如:='0' 取整

divLineDecimalPrecision 指定水平分区线的值小数位的位数,[0-10]

limitsDecimalPrecision 指定y轴最大、最小值的小数位的位数,[0-10]

formatNumber 逗号来分隔数字(千位,百万位),默认为1(True);若取0,则不加分隔符

decimalSeparator 指定小数分隔符,默认为'.'

thousandSeparator 指定千分位分隔符,默认为','

Tool-tip/Hover标题

showhovercap 是否显示悬停说明框,默认为1(True)

hoverCapBgColor 悬停说明框背景色,6位16进制颜色值

hoverCapBorderColor 悬停说明框边框颜色,6位16进制颜色值

hoverCapSepChar 指定悬停说明框内值与值之间分隔符,默认为','

折线图的参数

lineThickness 折线的厚度

anchorRadius 折线节点半径,数字

anchorBgAlpha 折线节点透明度,[0-100]

anchorBgColor 折线节点填充颜色,6位16进制颜色值

anchorBorderColor 折线节点边框颜色,6位16进制颜色值

Set标签使用的参数

value 数据值

color 颜色

link 链接(本窗口打开[Url],新窗口打开[n-Url],调用JS函数[JavaScript:函数])

name 横向坐标轴标签名称

  • dataset 相关属性

<dataset SeriesName='[-90dBm,-80dBm)' Color='F6BD0F' ShowValues='1' Alpha='100'>

  <set Value='3500' Alpha='80' />

</dataset>

怎么使用:



1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head runat="server">
4 <title></title>
5 <script src="JavaScript/jquery.js" type="text/javascript"></script>
6 <script src="JavaScript/FusionCharts.js" type="text/javascript"></script>
7 <script language="javascript" type="text/javascript">
8 $(document).ready(function () {
9 var myChartId = new Date().getTime();
10 var chart = new FusionCharts('FusionChartsFiles/FCF_MSColumn3D.swf', myChartId, "400", "300");
11 chart.setDataURL("Data.xml");
12 chart.render(document.getElementById("divSignalRangeStatitistics"));
13 });
14 </script>
15 </head>
16 <body>
17 <form id="form1" runat="server">
18 <div id="divSignalRangeStatitistics">
19 </div>
20 </form>
21 </body>
22 </html>


对应的data.xml



1 <?xml version="1.0" encoding="utf-8" ?>
2 <graph baseFont='Arial' baseFontSize='12' outCnvBaseFontSize='12' numberSuffix='' animation='1' bgAlpha='50' showhovercap='1' bgColor='ffffff' showValues='1' showNames='1' xAxisName='区域' yAxisName='接收信号数' yAxisMinValue='0' yAxisMaxValue='100' decimalPrecision='0' formatNumberScale='0' caption='信息强度分布图'>
3 <categories FontSize='10' FontColor='0000FF'>
4 <!-- AFD8F8,F6BD0F,8BBA00,FF8E46,008E8E,D64646,8E468E,588526,B3AA00,008ED6,9D080D,A186BE, -->
5 <category Name='信息强度区间出现记录数(单位:个)' ShowName='1' />
6 </categories>
7 <dataset SeriesName='小于-90dBM' Color='9D080D' ShowValues='1' Alpha='100'>
8 <set Value='1000' Alpha='80' />
9 </dataset>
10 <dataset SeriesName='[-90dBm,-80dBm)' Color='F6BD0F' ShowValues='1' Alpha='100'>
11 <set Value='3500' Alpha='80' />
12 </dataset>
13 <dataset SeriesName='[-80dBm,-70dBm)' Color='8BBA00' ShowValues='1' Alpha='100'>
14 <set Value='2400' Alpha='80' />
15 </dataset>
16 <dataset SeriesName='[-70dBm,-60dBm)' Color='FF8E46' ShowValues='1' Alpha='100'>
17 <set Value='8000' Alpha='80' />
18 </dataset>
19 <dataset SeriesName='[-60dBm,-50dBm)' Color='008E8E' ShowValues='1' Alpha='100'>
20 <set Value='2100' Alpha='80' />
21 </dataset>
22 <dataset SeriesName='大于或等于-50dBm' Color='A186BE' ShowValues='1' Alpha='100'>
23 <set Value='1987' Alpha='80' />
24 </dataset>
25 </graph>


  • 使用技巧:

当我们遇到 y轴出现 Nan.NULL时,可以在graph上添加 yaliasMaxValue='100',既可以解决该问题。

当数据库初始化化,无数据时,往往这个工具不会显示坐标轴(比如 [-80dBm,-70dBm]的统计记录为0时,在坐标轴上就不会出现该统计柱状图)在图表上,我可们可以给这个坐标一个0.001,当让我们decimalPrecision(指定小数位的位数)设置值这时要低于3位小数,否则该0.001就会显示为非0的数据了。



基础才是编程人员应该深入研究的问题,比如:

1)List/Set/Map内部组成原理|区别

2)mysql索引存储结构&如何调优/b-tree特点、计算复杂度及影响复杂度的因素。。。

3)JVM运行组成与原理及调优

4)Java类加载器运行原理

5)Java中GC过程原理|使用的回收算法原理

6)Redis中hash一致性实现及与hash其他区别

7)Java多线程、线程池开发、管理Lock与Synchroined区别

8)Spring IOC/AOP 原理;加载过程的。。。