Как нарисовать линию на графике JFreeChart? - PullRequest
5 голосов
/ 09 февраля 2012

У меня есть обновляемый OHLCChart.Мне нужно нарисовать линию над графиком.

Как это реализовать?

Ответы [ 2 ]

20 голосов
/ 09 февраля 2012

Если вы хотите нарисовать вертикальную или горизонтальную линию в заданном положении на оси, вы можете использовать ValueMarker :

ValueMarker marker = new ValueMarker(position);  // position is the value on the axis
marker.setPaint(Color.black);
//marker.setLabel("here"); // see JavaDoc for labels, colors, strokes

XYPlot plot = (XYPlot) chart.getPlot();
plot.addDomainMarker(marker);

Используйте plot.addRangeMarker(), если хотите нарисовать горизонтальную линию.

3 голосов
/ 09 февраля 2012

Примерно так должно работать, если вы хотите построить линейный индикатор (например, скользящее среднее):

    XYDataset dataSet = // your line dataset

    CombinedDomainXYPlot plot = (CombinedDomainXYPlot) chart.getPlot();
    XYPlot plot = (XYPlot) plot.getSubplots().get(0);
    int dataSetIndx = plot.getDatasetCount();
    plot.setDataset(dataSetIndx, dataSet);

    XYLineAndShapeRenderer lineRenderer = new XYLineAndShapeRenderer(true, false);
    plot.setRenderer(dataSetIndx, lineRenderer);
...