[英]JavaFX scaling chart series units
嗨,我有一个JavaFX LineChart,我想使用不同的单位重绘该系列,我创建了一个单独的列表,使用转换因子来计算新值,删除所有值并添加新值。
除了现在将第一个点连接到已被删除的上一个最后一个点之外,这非常有用。
任何想法如何避免这种情况?
for(XYChart.Series<Number, Number> series : _chart.getData())
{
List<XYChart.Data<Number, Number>> data = series.getData();
List<XYChart.Data<Number, Number>> newData =
new ArrayList<XYChart.Data<Number, Number>>();
for(XYChart.Data<Number, Number> item : data)
{
newData.add(new XYChart.Data<Number, Number>(
item.getXValue(),
item.getYValue().floatValue() * conversionFactor));
}
series.getData().remove(0, series.getData().size() - 1);
for(XYChart.Data<Number, Number> item : newData)
{
series.getData().add(item);
}
}
首先通过series.getData().clear()
清除数据。 您也可以使用ObservableList
避免添加循环。
for (XYChart.Series<Number, Number> series : chart.getData()) {
List<XYChart.Data<Number, Number>> data = series.getData();
ObservableList<XYChart.Data<Number, Number>> newData =
FXCollections.<XYChart.Data<Number, Number>>observableArrayList();
for (XYChart.Data<Number, Number> item : data) {
newData.add(new XYChart.Data<Number, Number>(
item.getXValue(),
item.getYValue().floatValue() * 1.1));
}
series.getData().clear();
series.setData(newData);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.