【发布时间】:2023-04-10 00:58:02
【问题描述】:
我正在使用 JFreeChart,并且希望能够将范围轴上的标签从数字更改为对我所在的域更有意义的值。我只看到自定义标签外观的选项,无法覆盖标签的内容基于刻度的位置。
有谁知道如何覆盖 tickLabel 的文本?
【问题讨论】:
标签: java jfreechart
我正在使用 JFreeChart,并且希望能够将范围轴上的标签从数字更改为对我所在的域更有意义的值。我只看到自定义标签外观的选项,无法覆盖标签的内容基于刻度的位置。
有谁知道如何覆盖 tickLabel 的文本?
【问题讨论】:
标签: java jfreechart
JFreeChart BarChartDemo1 展示了如何使用setStandardTickUnits() 方法。 NumberAxis 有几个方便的静态工厂。要覆盖默认值,您可以“创建自己的 TickUnits 实例,然后将其传递给 setStandardTickUnits() 方法。”
附录:上面提到的默认值只是使用java.text.Format的子类;您可以为每个TickUnit 和add() 提供自己的。如果这还不够,您可以在自己的TickUnit 的具体子类中覆盖valueToString(),并使用它来组成所需的TickUnits。
【讨论】:
我只是在遇到同样问题时发现了这一点。我通过使用SymbolAxis 解决了它。 SymbolAxis 可以添加到XYPlot。
SymbolAxis sa = new SymbolAxis("AxisLabel",
new String[]{"Category1","Category2","Category3","..."});
chart.getPlot().setDomainAxis(sa);
【讨论】: