道长A的地盘

http://Java.Im 这个网址NB吧?是道长的新网站,您不去看看吗?
随笔 - 28, 文章 - 1, 评论 - 73, 引用 - 0
数据加载中……

[AJava原创]FusionCharts Free中文开发指南[使用文档教程]第十三章--间断数据的处理

有时候我们的数据并不是连续的,例如我们有一个反映每个月销售额的图形,然而,五月和六月的数据我们缺失了,像这种情况我们该如何处理呢?
FCF早就想到这个问题了,我们看看下面的代码:

<graph>   
    
<set name='Jan' value='420' />   
    
<set name='Feb' value='295' />   
    
<set name='Mar' value='523' />     
    
<set name='Apr' value='473' />     
    
<set name='May' />     
    
<set name='Jun' />     
    
<set name='Jul' value='354' />     
    
<set name='Aug' value='457' />     
    
<set name='Sep' value='127' />     
    
<set name='Oct' value='354' />     
    
<set name='Nov' value='485' />     
    
<set name='Dec' value='486' />     
</graph> 



我们看到,上面五月和六月的数据里,并没有value这个属性。
如果把这样的数据放到一个柱状图里,效果如下:


图片1

在五月和六月那里没有柱子。这就是我们想要的效果。

如果把这样的数据放到一个曲线图里,效果如下:


图片1

同样的,五月和六月那里没有线段,它是缺失的。

如果你想连五月和六月的标签都不显示,你可以这样:
<set />
当然,你还可以干脆连<set />都不要。不过那样会让看图的人容易误解,因为人们一般都会以为是按顺序来排列月份的。

多系列的图形也可以放置这样的断点数据。看下面的图:


图片1

上图的XML数据如下:

<graph caption='Discontinuous Data Demo' numdivlines='4' showgridbg='1' showhovercap='1'   
lineThickness='1' animation='1' hoverCapSepChar=' ' anchorScale='0' showNames='1'   
showValues='0' numVDivLines='12' anchorscale='0' rotateNames='1'>   
   
<categories>   
      
<category name='5/2001' showName='1'/>   
      
<category name='6/2001' showName='0'/>   
      
<category name='7/2001' showName='0'/>   
      
<category name='8/2001' showName='1'/>   
      
<category name='9/2001' showName='0'/>   
      
<category name='10/2001' showName='0'/>   
      
<category name='11/2001' showName='1'/>   
      
<category name='12/2001' showName='0'/>   
      
<category name='1/2002' showName='0'/>   
      
<category name='2/2002' showName='1'/>   
      
<category name='3/2002' showName='0'/>   
      
<category name='4/2002' showName='0'/>   
      
<category name='5/2002' showName='1'/>   
      
<category name='6/2002' showName='0'/>   
      
<category name='7/2002' showName='0'/>   
      
<category name='8/2002' showName='1'/>   
      
<category name='9/2002' showName='0'/>   
      
<category name='10/2002' showName='0'/>   
      
<category name='11/2002' showName='1'/>   
      
<category name='12/2002' showName='0'/>   
      
<category name='1/2003' showName='0'/>   
      
<category name='2/2003' showName='1'/>   
      
<category name='3/2003' showName='0'/>   
      
<category name='4/2003' showName='1'/>   
   
</categories>   
   
<dataset seriesname='Series 1' color='00A900' showValue='0' lineThickness='2'   
   
yaxismaxvalue='100' anchorAlpha='0'>   
      
<set />   
      
<set />   
      
<set />   
      
<set value='0' />   
      
<set value='1' />   
      
<set value='2' />   
      
<set value='3' />   
      
<set value='5' />   
      
<set value='8' />   
      
<set value='11' />   
      
<set value='16' />   
      
<set value='23' />   
      
<set value='31' />   
      
<set value='40' />   
      
<set value='49' />   
      
<set value='59' />   
      
<set value='68' />   
      
<set />   
      
<set />   
      
<set value='89' />   
      
<set value='94' />   
      
<set value='97' />   
      
<set value='99' />   
      
<set value='100' />   
   
</dataset>   
   
<dataset seriesname='Series 2' color='0000FF' showValue='0' lineThickness='2'     
   
yaxismaxvalue='100' anchorAlpha='0'>   
      
<set />   
      
<set value='0' />   
      
<set value='0' />   
      
<set value='0' />   
      
<set value='0' />   
      
<set value='1' />   
      
<set value='1' />   
      
<set value='1' />   
      
<set value='1' />   
      
<set value='6' />   
      
<set value='26' />   
      
<set value='43' />   
      
<set />   
      
<set />   
      
<set />   
      
<set />   
      
<set value='43' />   
      
<set value='53' />   
      
<set value='66' />   
      
<set value='78' />   
      
<set value='91' />   
      
<set />   
      
<set />   
      
<set />   
   
</dataset>   
</graph> 


在category 元素里有个showName属性,当值为1时,就会显示;当值为0时,就不显示,哪怕给它提供了相应的数据。上面代码虽然有很多category,但是只有9个值为1的,所以图形里只显示了9个。

再看看dataset里有很多<set />,这就是没有数据。所以在图里我们看到了很多的断点。



AJava.org --一个Java门户! 转载请以连接方式注明来自AJava.org

posted on 2009-03-28 00:06 道长A@ajava.org 阅读(1786) 评论(3)  编辑  收藏 所属分类: FusionCharts 开发指南

评论

# re: [AJava原创]FusionCharts Free中文开发指南[使用文档教程]第十三章--间断数据的处理[未登录]  回复  更多评论   

道长有研究过它和鼠标点击如何实现交互吗?
2009-03-29 21:18 | Chaser

# re: [AJava原创]FusionCharts Free中文开发指南[使用文档教程]第十三章--间断数据的处理  回复  更多评论   

@Chaser
这个我好像还没看到有其他的交互,好像只有鼠标单击这个动作。
2009-03-29 23:39 | 道长A@ajava.org

# re: [AJava原创]FusionCharts Free中文开发指南[使用文档教程]第十三章--间断数据的处理  回复  更多评论   

道长好!我在使用过程中发现如果数据全部为零时,不能正确的生成图像,主要表现为不能正确选择比例尺,把数据都显示为无限大了(如Column中就会全部显示为最大值),请问这个问题有什么好的解决办法吗?多谢道长~
2009-04-14 09:29 | magicbacon

只有注册用户登录后才能发表评论。


网站导航: