我正在尝试在 JFreeChart 中实现具有特殊要求的时间序列图表。我可以绘制图表,但我不知道如何在图表中的最后一个值处实现垂直红线。它应该始终在同一个位置,并且应该始终与最后一个值相交。
我完全不知道如何做到这一点。我在想有可能将它实现为静态网格线,但我不知道如何指定。
此外,图表的大小将是静态的,因此可以接受一些迂回的方式,希望不引入任何 3rd 方库。
可以在这里找到我想要实现的图像。
谢谢。
好吧,我用记号笔解决了它。这是执行此操作的代码:
JFreeChart chart = ChartFactory.createTimeSeriesChart(...);
XYPlot plot = chart.getXYPlot();
Long timestampToMark = new Date().getTime();
Marker m = new ValueMarker(timestampToMark);
m.setStroke(new BasicStroke(2));
m.setPaint(Color.RED);
plot.addDomainMarker(m);
也许其他人会发现这很有用。
我只是在最后一个域值上设置了一个自定义十字准线:
XYPlot plot = chart.getXYPlot();
plot.setDomainCrosshairVisible(true);
plot.setDomainCrosshairPaint(Color.red);
plot.setDomainCrosshairStroke(new BasicStroke(3f));
plot.setDomainCrosshairValue(dataset.getXValue(0, dataset.getItemCount(0) - 1));