将静态网格线添加到JFreeChart时间序列图表

时间:2010-12-10 10:10:54

标签: jfreechart gridlines

我正在尝试在JFreeChart中以特殊要求实现a timeseries chart。我可以绘制图表,但我不知道如何在图表的最后一个值处实现垂直红线。它应始终位于同一位置,并且应始终与最后一个值相交。

我完全不知道如何做到这一点。我当时认为可以将它作为静态网格线实现,但我不知道如何指定它。

此外,图表的大小将是静态的,因此一些迂回的方式是可以接受的,希望不引入任何第三方库。

可以找到我想要实现的目标的图像here

感谢。

2 个答案:

答案 0 :(得分:6)

好吧,我用标记解决了它。以下是执行此操作的代码:

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);

也许别人会觉得这很有用。

答案 1 :(得分:1)

我只是在最后一个域值上设置自定义交叉头发:

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));