💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 9.4 轴属性 ### 9.4.1 概述 使用JFreeChart创建的大部分图表都带有两个轴。X轴和Y轴。当然对于一些图表(比如饼图)根本就没有轴。对于使用轴的图表来说,图区使用Axis对象来管理轴。 ### 9.4.2 获得轴对象引用 在你修改轴的属性之前,我们需要先获得一个轴的引用。图区类CategoryPlot和XYPlot类有两个方法getDomainAxis()和getRangeAxis()分别是获得X轴Y轴对象。这两个方法返回了一个ValueAxis对象的引用,除了在使用CategoryPlot的情况下,X轴使用的是CategoryAxis。代码如下: ``` // get an axis reference... CategoryPlot plot = jfreechart.getCategoryPlot(); CategoryAxis domainAxis = plot.getDomainAxis(); // change axis properties... domainAxis.setLabel("Categories"); domainAxis.setLabelFont(someFont); ``` CategoryAxis和ValueAxis类有许多不同的子类。有时我们需要将轴对象引用转化成具体的子类,为了获取更多具体的属性。如,如果我们想获得y轴为一个对象NumberAxis。代码如下: ``` XYPlot plot = jfreechart.getXYPlot(); NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setAutoRange(false); ``` ### 9.4.3 设置轴标签 我们使用方法setLabel()可以改变轴的标签。如果我们不想在图表的轴上有标签,那么我们就设置为null即可。 我们可以使用Axis类定义的方法setLabelFont(), setLabelPaint(), 和 setLabelInsets()改变标签的字体、颜色等内容。 ### 9.4.4 改变周边标签显示方向 当图区在左侧或右侧画一个轴(水平轴)时,轴标签会自动旋转90度,以满足小空间的需要。如果我们希望标签也水平,我们需要修改标签的角度: ``` XYPlot plot = jfreechart.getXYPlot(); ValueAxis axis = plot.getRangeAxis(); axis.setLabelAngle(Math.PI / 2.0); ``` 注意角度的表示使用弧度(PI为180度)。 ### 9.4.5 隐藏刻度标签 隐藏某个轴的刻度标签: ``` CategoryPlot plot = jfreechart.getCategoryPlot(); ValueAxis axis = plot.getRangeAxis(); axis.setTickLabelsVisible(false); ``` 对于CategoryAxis,方法setTickLabelsVisible(false)隐藏种类标签。 ### 9.4.6 隐藏刻度符号 隐藏某个轴的刻度符号: ``` XYPlot plot = jfreechart.getXYPlot(); Axis axis = plot.getDomainAxis(); axis.setTickMarksVisible(false); ``` 注意category轴没有刻度符号。 ### 9.4.7 设置刻度尺寸 默认的,数值和日期会自动选择一个刻度尺寸,以便刻度标签不会重复显示。但我们也可以使用setTickUnit()方法设置我们自己的饿刻度单位。 ### 9.4.8 指定标准的数值刻度单位 在NumberAxis类中,方法允许我们设置我们自己的刻度单位替代系统自动选择刻度danwi的机制。最普通的应用就是我们有一个仅仅显示整数的数轴。在实例中,我们不想让0.5或者0.25作为刻度单位。在NumberAxis类中有一个静态方法返回一系列的标准整数刻度单位: ``` XYPlot plot = jfreechart.getXYPlot(); NumberAxis axis = (NumberAxis) plot.getRangeAxis(); TickUnitSource units = NumberAxis.createIntegerTickUnits(); axis.setStandardTickUnits(units); ``` 如果我们想控制标准的刻度单位时,我们可以自由定制自己的TickUnits集合。 ### 9.4.9 指定标准的日期刻度单位 类似于上一节内容,DateAxis类也有一个setStandardTickUnits()方法,来设置我们的刻度单位。方法createStandardDateTickUnits()为DateAxis返回了一个缺省的集合。同时我们也可以创建我们自己的标准日期刻度单位。