为了将信息处理为xml,我面临将venn图表示为树结构的问题。
有没有人有一个优雅的方法来做这个,或者一些敏锐的观察?
请注意,我无法处理集合中的单个元素。图表将说明相当于“总共有20名学生,其中5名学生做运动,8名学生下棋,3名学生同时下棋”。

最佳答案

根据您的描述,我的理解是,您所说的是处理聚合数据(每组计数),而不是处理离散项。因此,有了这个假设,我将首先看看另一个代码库如何表示venn图(google chart api)
google chart api使用七个值表示venn图。我从这里提取了以下描述:http://code.google.com/apis/chart/image/docs/gallery/venn_charts.html
前三个值指定三个圆的大小:A、B和C。对于只有两个圆的图表,请为第三个值指定零。
第四个值指定a和b的交点的大小。
第五个值指定a和c的交集大小。对于只有两个圆的图表,不要在此处指定值。
第六个值指定B和C的交集大小。对于只有两个圆的图表,不要在此处指定值。
第七个值指定A、B和C的公共交点的大小。对于只有两个圆的图表,不要在此处指定值。
我们可以应用相同的方法以XML表示您的问题域:

<venn_diagram item_type="Students" item_count="20">
    <set_a name="Play Sports" item_count="5"/>
    <set_b name="Play Chess" item_count="8"/>
    <set_a_and_b name="Play Both" item_count="3"/>
</venn_diagram>

有了这些信息,你就能画出图表了。

07-24 20:32