gpt4 book ai didi

JFreechart:在特定单位后显示带有值的 X 轴

转载 作者:行者123 更新时间:2023-12-01 14:20:08 34 4
gpt4 key购买 nike

我正在使用 jfreechart 来显示折线图。现在,在 X 轴上它显示图表上每个 (x,y) 对的值。因此 X 轴有大量重叠的值。我想显示几个例如每 5 个单位或类似的东西之后的值。使用 Jfreechart 这怎么可能。

最佳答案

在绘制图表的 NumberAxis 之前,刷新其刻度线。结果是一个 List,其中包含轴的每个刻度线的 NumberTick 对象。

通过覆盖函数 NumberAxis.refreshTicks,您可以控制标记的显示方式和是否显示。

例如,在下面的代码中,我获取所有刻度线并遍历它们以查找 TickType.MAJOR。如果主刻度线的值不能被 5 整除,它将被次刻度线替换。

因此,只有可被 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);

关于JFreechart:在特定单位后显示带有值的 X 轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10753961/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com