1

我有一个桌面摇摆应用程序,我向其中添加了一个 JFreeChart 面板。我有一个例程,它通过使用 2 个双精度数组来构建一个 DefaultXYDataset。SeqDates 将显示样本的时间,但为简化起见,它只是一个从 1 开始并为每个新的 graphMeans 条目增加 1 的序列号。graphMeans 是多个样本的平均权重。

DefaultXYDataset result = new DefaultXYDataset();

double[] SeqDates = new double[count];
double[] graphMeans = new double[count];

SeqDates = 1.0, 2.0 etc
graphMeans = 102.5,103.7

double[][] series1 ={ SeqDates, graphMeans };

result.addSeries("mean", series1);

我让它工作了,但我遇到了两个问题。最重要的问题是每 15 分钟我需要向数组添加一个新值

SeqDates = 1.0, 2.0 ,3.0etc
graphMeans = 102.5,103.7,101.2

我需要做的是调整垂直轴的范围,以确保它仍然包含 graphMeans 的最小值和最大值以及在这种情况下它显示 3 个条目而不是 2 个的 x 轴。

我一直在摸索互联网上的一些代码示例,但我很惭愧无法向您展示我最终得到的结果。我的第一个版本似乎可以正常工作,直到我错误地单击了图表并且它似乎恢复为更早的形式。另一个版本根本不会使用附加值进行更新。

API 对我来说有点太复杂了,我无法理解,到目前为止我在网上找到的示例似乎不符合我认为应该是一个简单的要求。

chart = ChartFactory.createXYLineChart("Weights Graph", "Sample", "Mean Weight",result , PlotOrientation.VERTICAL, true, true, false);

NumberAxis rangeAxis = new NumberAxis("Weight");
rangeAxis.setRange(highestvalueingraphMeans, lowestvalueingraphMeans );
rangeAxis.setRangeType(RangeType.POSITIVE);

chart.getXYPlot().setRangeAxis(rangeAxis);

// 这个位是错误的。应该更新而不是重新创建。cp = 新图表面板(图表);

cp.setBounds(14, 178, 746, 374);

jDesktopPane1.add(cp);
4

0 回答 0