在实时图形jfreechart

时间:2017-03-15 11:15:56

标签: java jfreechart timeserieschart

到目前为止,我使用TimeSeriesChart和DynamicTimeSeriesCollection来创建这样的图表:

My current graph

但要求是让用户点击图表并定义“高”和“低”边界,如下图所示:

Requirement

当我们在图表上单击鼠标时,我已经获得了这段代码来获取值:

public void chartMouseClicked(ChartMouseEvent cme) {
            Point2D p = chart.translateScreenToJava2D(cme.getTrigger().getPoint());
            Rectangle2D greyChartArea = chart.getChartRenderingInfo().getPlotInfo().getDataArea();
            double valueY = ((NumberAxis) plot.getRangeAxis()).java2DToValue(p.getY(), greyChartArea, plot.getRangeAxisEdge());
            double valueX = ((NumberAxis) plot.getDomainAxis()).java2DToValue(p.getX(), greyChartArea, plot.getDomainAxisEdge());
            System.out.println(valueY);
        }

问题是当用具有动态x轴的实时图表单击鼠标时如何绘制固定线? (该行上的点击点应该是可移动的并且能够删除)

任何指针都将受到赞赏。

//的更新

Updated

到目前为止,我可以通过鼠标定义“高”和“低”区域,但问题是数据何时出现:

public void draw(Data data) {
    dataset.advanceTime();
    float[] info = new float[1];
    info[0] = data.getInfo();
    dataset.appendData(info);
}

“高”和“低”系列将消失或被推开。有什么方法可以使“高”和“低”固定线?

0 个答案:

没有答案