gpt4 book ai didi

java - 在条形图中显示相同的值

转载 作者:行者123 更新时间:2023-12-02 10:32:32 25 4
gpt4 key购买 nike

问题是,当用列表填充我的条形图(任一)时,相同的值会相互绘制并显示为一个。我花了很长时间才弄清楚这一点。现在,我通过简单地查找重复项并向其添加“”来构建一个巧妙的解决方法。但是,如果您要显示包含 100 多个条目的列表,并且它们都是单位数字,那么每个数字后面必然有最多 9 个空格,这使得格式化所有这些变得非常困难。因此我的问题是:有没有办法指示条形图单独绘制它们,或者如果没有,是否有比我更好的解决方法?

    public void updateChart(boolean originalChart, ArrayList<SortingEntry> entries){
Platform.runLater(() -> {
ArrayList<SortingEntry> list = Functions.checkForDoubles(entries);
if(originalChart){
inputSeries = new XYChart.Series();
for(SortingEntry entry:list){
XYChart.Data chartData = new XYChart.Data(entry.getValue(), entry.getValAsLong());
inputSeries.getData().add(chartData);
}
input.getData().clear();
input.getData().add(inputSeries);
} else {
resultSeries = new XYChart.Series();
for(SortingEntry entry:list){
XYChart.Data chartData = new XYChart.Data(entry.getValue(), entry.getValAsLong());
resultSeries.getData().add(chartData);
}
result.getData().clear();
result.getData().add(resultSeries);
}
System.out.println();
});
}

函数中的checkForDoubles:

    public static ArrayList<SortingEntry> checkForDoubles(ArrayList<SortingEntry> list){
ArrayList<String> doubles = new ArrayList<>();
for(int i = 0; i < list.size(); i++){
for(int j = 0; j < list.size(); j++){
SortingEntry entry = list.get(i);
if(entry.getValue().equals(list.get(j).getValue()) && !doubles.contains(entry.getValue()) && i != j){
doubles.add(entry.getValue());
list.remove(entry);
entry.setValue(entry.getValue()+" ");
list.add(entry);
checkForDoubles(list);
}
}
}
return list;
}

最佳答案

不幸的是,这是图表的定义——对于一个 X 值 (entry.getValue()),您有一个 Y 值。如果您不关心 X 值 - 只需使用索引即可:

int i;
for(SortingEntry entry:list){
XYChart.Data chartData = new XYChart.Data(i++, entry.getValAsLong());
inputSeries.getData().add(chartData);
}

否则,您需要使用类似空格的技巧(注意,utf 中有 zero width space)或编写您自己的 Axis 实现。

关于java - 在条形图中显示相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53532939/

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