- 背景
最近由于工作需要,再次接触到了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 原理;加载过程的。。。