gpt4 book ai didi

java - 将值添加到 DynamicTimeSeriesCollection 中的指定系列

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:50:45 26 4
gpt4 key购买 nike

程序每秒接收一次数据,绘制在时间序列图上。但是,一旦我创建了两个系列,就无法为其添加新的值(value)。它只显示一条直线。

enter image description here

如何将数据附加到指定系列? IE。 YYY。基于此example ,这是我正在做的:

...
// Data set.
final DynamicTimeSeriesCollection dataset =
new DynamicTimeSeriesCollection( 2, COUNT, new Second() );
dataset.setTimeBase( new Second( 0, 0, 0, 1, 1, 2011 ) );

dataset.addSeries( gaussianData(), 0, "XXX" );
dataset.addSeries( gaussianData(), 1, "YYY" );

// Chart.
JFreeChart chart = createChart( dataset );
this.add( new ChartPanel( chart ), BorderLayout.CENTER );

// Timer.
timer = new Timer( 1000, new ActionListener() {
@Override
public void actionPerformed ( ActionEvent e ) {
dataset.advanceTime();
dataset.appendData( new float[] { randomValue() } );
}
} );
...

private JFreeChart createChart ( final XYDataset dataset ) {
final JFreeChart result = ChartFactory.createTimeSeriesChart(
TITLE, "", "", dataset, true, true, false );
final XYPlot plot = result.getXYPlot();
ValueAxis domain = plot.getDomainAxis();
domain.setAutoRange( true );

ValueAxis range = plot.getRangeAxis();
range.setRange( -MINMAX, MINMAX );
return result;
}

最佳答案

假设您从 here 开始,您已经指定了一个包含两个系列的数据集,但您只是在 Timer 的每个刻度上附加了一个 一个 值。每个刻度需要两个值。以下是我如何修改原始图片以获得下面的图片:

final DynamicTimeSeriesCollection dataset =
new DynamicTimeSeriesCollection(2, COUNT, new Second());
...
dataset.addSeries(gaussianData(), 0, "Human");
dataset.addSeries(gaussianData(), 1, "Alien");
...
timer = new Timer(FAST, new ActionListener() {

// two values appended with each tick
float[] newData = new float[2];

@Override
public void actionPerformed(ActionEvent e) {
newData[0] = randomValue();
newData[1] = randomValue();
dataset.advanceTime();
dataset.appendData(newData);
}
});

image

关于java - 将值添加到 DynamicTimeSeriesCollection 中的指定系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15517509/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com