我正在使用jfreechart显示折线图。现在,在X轴上,它显示图表上每个(x,y)对的值。因此,X轴上有大量的值重叠。我想显示一些值,例如每5个单位后或类似的方式。如何使用Jfreechart实现这一点。
我正在使用jfreechart显示折线图。现在,在X轴上,它显示图表上每个(x,y)对的值。因此,X轴上有大量的值重叠。我想显示一些值,例如每5个单位后或类似的方式。如何使用Jfreechart实现这一点。
NumberAxis
之前,它的刻度标记将被刷新。结果是一个 List
,其中包括轴上每个刻度标记的 NumberTick
对象。NumberAxis.refreshTicks
,您可以控制如何显示这些标记。TickType.MAJOR
。如果主要刻度标记的值不能被5整除,则用次要刻度标记替换。XYPlot plot = (XYPlot) chart.getPlot();
NumberAxis myAxis = new NumberAxis(plot.getDomainAxis().getLabel()) {
@Override
public List refreshTicks(Graphics2D g2, AxisState state,
Rectangle2D dataArea, RectangleEdge edge) {
List allTicks = super.refreshTicks(g2, state, dataArea, edge);
List myTicks = new ArrayList();
for (Object tick : allTicks) {
NumberTick numberTick = (NumberTick) tick;
if (TickType.MAJOR.equals(numberTick.getTickType()) &&
(numberTick.getValue() % 5 != 0)) {
myTicks.add(new NumberTick(TickType.MINOR, numberTick.getValue(), "",
numberTick.getTextAnchor(), numberTick.getRotationAnchor(),
numberTick.getAngle()));
continue;
}
myTicks.add(tick);
}
return myTicks;
}
};
plot.setDomainAxis(myAxis);