gpt4 book ai didi

java - 是否可以使用 vaadin 插件 InvientCharts 动态更改 x 轴和 y 轴标题

转载 作者:太空宇宙 更新时间:2023-11-04 08:05:32 24 4
gpt4 key购买 nike

我正在使用 vaadin,为了进行一些可视化数据分析,我为 vaadin 添加了插件 InvientCharts (https://vaadin.com/directory#addon/invient-charts)。

是否可以动态更改散点图的 x 轴和 y 轴标题(因此在创建图表后)?

我目前有一个散点图和一个按钮。单击该按钮时,所有现有点(系列)将被删除,x 轴和 y 轴标题将发生变化,并且新点将添加到图表上。

这是我当前正在尝试的代码片段:

public void changePoints(String xAxisTitle, String yAxisTitle, List<List<double[]>> xAndYCoordinates) {
// remove all points from the scatterchart - THIS IS WORKING
Object[] allSeries = chart.getAllSeries().toArray();
for(int j = 0; j < allSeries.length; j++){
Series serie = (Series) allSeries[j];
chart.removeSeries(serie);
}

// update the x- and y-axis - THIS IS NOT WORKING AND WHAT I'M TALKING ABOUT
chartConfig.getXAxes().clear();
chartConfig.getYAxes().clear();
NumberXAxis xAxis = new NumberXAxis();
xAxis.setTitle(new AxisTitle(xAxisTitle));
xAxis.setStartOnTick(true);
xAxis.setEndOnTick(true);
xAxis.setShowLastLabel(true);
LinkedHashSet<XAxis> xAxesSet = new LinkedHashSet<InvientChartsConfig.XAxis>();
xAxesSet.add(xAxis);
chartConfig.setXAxes(xAxesSet);
NumberYAxis yAxis = new NumberYAxis();
yAxis.setTitle(new AxisTitle(yAxisTitle));
LinkedHashSet<YAxis> yAxesSet = new LinkedHashSet<InvientChartsConfig.YAxis>();
yAxesSet.add(yAxis);
chartConfig.setYAxes(yAxesSet);


// add the new points - THIS IS WORKING AGAIN
for (int i = 0; i < versionDates.size(); i++) {
String versionDate = versionDates.get(i);
List<double[]> versionValues = xAndYCoordinates.get(i);

ScatterConfig versionScatterConfig = new ScatterConfig();
XYSeries series = new XYSeries("Version " + (i + 1) + " - "
+ versionDate, versionScatterConfig);
series.setSeriesPoints(getPoints(series, versionValues));
chart.addSeries(series);
}
}

如您所见,删除和添加点效果非常好,我认为这是因为我直接在此处的图表上工作,而当我尝试更改轴标题时,我正在处理图表配置。

您能否告诉我或向我展示如何更改现有图表中 x 轴和 y 轴的标题(如上所述)?

非常感谢

最佳答案

经过大量研究后,我得出的结论是,目前似乎没有办法动态更改 x 轴和 y 轴标题,但这是有效的。

我发现如果你刷新页面,例如按 F5 可以更改坐标区标题。我尝试过实现复习,但不知何故,行为仍然没有改变。

所以对我来说这看起来像是一个错误(或软件故障)。

我的解决方法也是如此,只是删除整个图表,然后添加一个带有新轴标题的全新图表。这工作得非常快而且很好,但在我看来是一个肮脏的解决方案,因为你必须添加比必要的更多的代码行,而且逻辑现在基本上比它应该的更复杂。

关于java - 是否可以使用 vaadin 插件 InvientCharts 动态更改 x 轴和 y 轴标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12143210/

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