如何在JFreeChart中更改NumberAxis上的tickLabel?

时间:2010-03-02 18:31:31

标签: java jfreechart

我正在使用JFreeChart,并希望能够将范围轴上的标签从数字更改为对我所在域更有意义的内容。我只看到用于自定义标签外观的选项,无法覆盖基于刻度线位置的标签内容。

有谁知道如何覆盖tickLabel的文本?

2 个答案:

答案 0 :(得分:7)

JFreeChart BarChartDemo1显示了如何使用setStandardTickUnits()方法。 NumberAxis有几个方便的静态工厂。要覆盖默认值,您可以“创建自己的TickUnits实例,然后将其传递给setStandardTickUnits()方法。”

附录:上面提到的默认值只使用java.text.Format的子类;您可以为每个TickUnit add()提供自己的{{1}}。如果这不合适,您可以在valueToString()的具体子类中覆盖TickUnit,并使用它来组成所需的TickUnits

答案 1 :(得分:5)

我在遇到同样的问题时发现了这个问题。我使用SymbolAxis解决了这个问题。 SymbolAxis可以添加到XYPlot

SymbolAxis sa = new SymbolAxis("AxisLabel",
    new String[]{"Category1","Category2","Category3","..."});
chart.getPlot().setDomainAxis(sa);