有时候我们的数据并不是连续的,例如我们有一个反映每个月销售额的图形,然而,五月和六月的数据我们缺失了,像这种情况我们该如何处理呢?
FCF早就想到这个问题了,我们看看下面的代码:
1. <graph>
2. <set name='Jan' value='420' />
3. <set name='Feb' value='295' />
4. <set name='Mar' value='523' />
5. <set name='Apr' value='473' />
6. <set name='May' />
7. <set name='Jun' />
8. <set name='Jul' value='354' />
9. <set name='Aug' value='457' />
10. <set name='Sep' value='127' />
11. <set name='Oct' value='354' />
12. <set name='Nov' value='485' />
13. <set name='Dec' value='486' />
14. </graph>
我们看到,上面五月和六月的数据里,并没有value这个属性。
如果把这样的数据放到一个柱状图里,效果如下:
在五月和六月那里没有柱子。这就是我们想要的效果。
如果把这样的数据放到一个曲线图里,效果如下:
同样的,五月和六月那里没有线段,它是缺失的。
如果你想连五月和六月的标签都不显示,你可以这样:
<set />
当然,你还可以干脆连<set />都不要。不过那样会让看图的人容易误解,因为人们一般都会以为是按顺序来排列月份的。
多系列的图形也可以放置这样的断点数据。看下面的图:
上图的XML数据如下:
15. <graph caption='Discontinuous Data Demo' numdivlines='4' showgridbg='1' showhovercap='1'
16. lineThickness='1' animation='1' hoverCapSepChar=' ' anchorScale='0' showNames='1'
17. showValues='0' numVDivLines='12' anchorscale='0' rotateNames='1'>
18. <categories>
19. <category name='5/2001' showName='1'/>
20. <category name='6/2001' showName='0'/>
21. <category name='7/2001' showName='0'/>
22. <category name='8/2001' showName='1'/>
23. <category name='9/2001' showName='0'/>
24. <category name='10/2001' showName='0'/>
25. <category name='11/2001' showName='1'/>
26. <category name='12/2001' showName='0'/>
27. <category name='1/2002' showName='0'/>
28. <category name='2/2002' showName='1'/>
29. <category name='3/2002' showName='0'/>
30. <category name='4/2002' showName='0'/>
31. <category name='5/2002' showName='1'/>
32. <category name='6/2002' showName='0'/>
33. <category name='7/2002' showName='0'/>
34. <category name='8/2002' showName='1'/>
35. <category name='9/2002' showName='0'/>
36. <category name='10/2002' showName='0'/>
37. <category name='11/2002' showName='1'/>
38. <category name='12/2002' showName='0'/>
39. <category name='1/2003' showName='0'/>
40. <category name='2/2003' showName='1'/>
41. <category name='3/2003' showName='0'/>
42. <category name='4/2003' showName='1'/>
43. </categories>
44. <dataset seriesname='Series 1' color='00A900' showValue='0' lineThickness='2'
45. yaxismaxvalue='100' anchorAlpha='0'>
46. <set />
47. <set />
48. <set />
49. <set value='0' />
50. <set value='1' />
51. <set value='2' />
52. <set value='3' />
53. <set value='5' />
54. <set value='8' />
55. <set value='11' />
56. <set value='16' />
57. <set value='23' />
58. <set value='31' />
59. <set value='40' />
60. <set value='49' />
61. <set value='59' />
62. <set value='68' />
63. <set />
64. <set />
65. <set value='89' />
66. <set value='94' />
67. <set value='97' />
68. <set value='99' />
69. <set value='100' />
70. </dataset>
71. <dataset seriesname='Series 2' color='0000FF' showValue='0' lineThickness='2'
72. yaxismaxvalue='100' anchorAlpha='0'>
73. <set />
74. <set value='0' />
75. <set value='0' />
76. <set value='0' />
77. <set value='0' />
78. <set value='1' />
79. <set value='1' />
80. <set value='1' />
81. <set value='1' />
82. <set value='6' />
83. <set value='26' />
84. <set value='43' />
85. <set />
86. <set />
87. <set />
88. <set />
89. <set value='43' />
90. <set value='53' />
91. <set value='66' />
92. <set value='78' />
93. <set value='91' />
94. <set />
95. <set />
96. <set />
97. </dataset>
98. </graph>
在category 元素里有个showName属性,当值为1时,就会显示;当值为0时,就不显示,哪怕给它提供了相应的数据。上面代码虽然有很多category,但是只有9个值为1的,所以图形里只显示了9个。
再看看dataset里有很多<set />,这就是没有数据。所以在图里我们看到了很多的断点。