DOC-03-31 饼图(Pie Chart)

本章介绍饼图,。饼图以将一个圆按角度划分为楔形扇区的方式来展示数据。每个扇区表示一个特定数值的百分比。

图31-1展示了一个用PieChart类创建的饼图。各个扇区的颜色由添加到PieChart.Data数组的相应数据项的顺序决定。

31-1 典型的饼图

3-31-1 pie-sample

创建饼图

要在JavaFX应用中创建饼图,你至少要要按如下步骤:实例化PieChart类、定义数据、给PieChart对象分配数据项,然后再把该图表添加到应用中。创建图表数据的时候,你想把饼图分成几个扇区,那么你就需要定义几个PieChart.Data对象。每个PieChart.Data对象都有两个属性:扇区的名称和与它相关的数据值。样例31-1创建了一个基本的饼图。

31–1 创建一个饼图

编译并运行这个程序的结果如图31-2所示。

31-2 进口水果图表

3-31-2 pie-fruits

除了基本设置,样例31-1还通过调用setTitle方法指定了饼图的标题。

设置饼图和图例

饼图的默认视图中包括带有标签的饼图和图例。标签的值即是PieChart.Data对象的name属性值。你可以通过调用setLabelsVisile方法来决定是否显示标签。类似地,你也可以通过调用setLegendVisible方法来决定是否显示图例。

你可以控制标签和图例的位置。使用setLabelLineLength方法可以指定标签到圆周之间连线的长度。使用setLegendSide方法可以控制图例相对于饼图的位置。样例31-2示范了如何将这些方法应用到样例31-1创建的饼图中。

31–2 改变Label和图例的位置

添加以上代码后,程序编译、运行的结果如图31-3所示。

31-3 图例和标签的位置设定

3-31-3 pie-legend

你的程序可能需要控制扇区在饼图中的排列方向。在默认情况下,扇区是按顺时针的方向放置的,然而,你可以通过调用setClockwise方法并指定参数值为false来将放置顺序改为逆时针:chart.setClockwise(false)。这个方法可以和setStartAngle方法组合使用来使各个扇区放置到理想的位置。图31-4展示了在对chart对象调用了setStartAngle(180)方法后饼图的样式。

31-4 改变饼图各扇区的开始角度

3-31-4 pie-angle

处理饼图事件

尽管饼图中的扇区并不是一个Node对象,但每个PieChart.Data元素都有一个Node对象与之关联,该Node对象可以用来分析和处理事件。样例31-3中的代码片段创建了一个EventHandler对象来处理特定扇区上激发的MOUSE_PRESSED事件。

31–3 处理饼图的鼠标事件

当你把上面的代码片段添加到程序代码中并编译、运行程序,应用程序会开始反馈鼠标的点击事件。图31-5展示了当用户点击Pears扇区时显示出的数值。

31-5 处理饼图的鼠标按下事件

3-31-5 pie-click

通过使用类似的代码,你可以处理各种事件或改变整个饼图及其扇区的视觉效果。

相关的API文档

· PieChart

· Data

· Chart

打赏一下
支付宝
微信
除非注明,博客文章均为原创,转载请标明文章地址
本文地址: http://www.javafxchina.net/blog/2015/04/doc03_piechart/
百度已收录