Вопрос: Добавление статической сетки к диаграмме временных рядов JFreeChart


Я пытаюсь реализовать график временных рядов  с особым требованием в JFreeChart. Я могу рисовать диаграмму, но я не знаю, как реализовать вертикальную красную линию при последнем значении в диаграмме. Он всегда должен находиться в одном и том же месте и всегда должен пересекаться с последним значением.

Я совершенно не понимаю, как это будет сделано. Я думал, что можно реализовать его как статическую сетку, но я не знаю, как ее указать.

Кроме того, размер диаграмм будет статичным, поэтому некоторый окольный способ сделать это допустим, надеюсь, без введения каких-либо сторонних библиотек.

Изображение того, что я пытаюсь достичь, можно найти Вот ,

Благодарю.


3


источник


Ответы:


Ну, я решил это с помощью маркера. Вот код, который делает это:

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

Может быть, кто-то еще найдет это полезным.


6



Я просто установил пользовательские перекрестия на последнем значении домена:

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

1