Добавление статической линии сетки к диаграмме временных рядов JFreeChart - PullRequest
3 голосов
/ 10 декабря 2010

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

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

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

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

Спасибо.

Ответы [ 2 ]

6 голосов
/ 28 марта 2011

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

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 голос
/ 10 декабря 2010

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

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