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

3
我正在尝试在JFreeChart中实现一个时间序列图表,并有一个特殊的需求。我可以绘制图表,但不知道如何在图表中实现垂直的红线,该线应始终位于相同位置,并且始终与最后一个值相交。

我完全没有想法如何完成这项工作。我认为可能可以将其实现为静态网格线,但我不知道如何指定它。

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

我想要实现的效果的图片可以在这里找到。

谢谢。

2个回答

7

我用标记解决了这个问题。下面是解决方法的代码:

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

我刚刚在最后一个域值上设置了自定义十字线:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接