有时候我们的数据并不是连续的,例如我们有一个反映每个月销售额的图形,然而,五月和六月的数据我们缺失了,像这种情况我们该如何处理呢?
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
在五月和六月那里没有柱子。这就是我们想要的效果。
如果把这样的数据放到一个曲线图里,效果如下:
图片2
同样的,五月和六月那里没有线段,它是缺失的。
如果你想连五月和六月的标签都不显示,你可以这样:
<set />
当然,你还可以干脆连<set />都不要。不过那样会让看图的人容易误解,因为人们一般都会以为是按顺序来排列月份的。
多系列的图形也可以放置这样的断点数据。看下面的图:
图片3
上图的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 />,这就是没有数据。所以在图里我们看到了很多的断点。