1

私は 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);
        }
    }

ご覧のとおり、ポイントの削除と追加は完全に正常に機能します。これは、軸のキャプションを変更しようとしたときに chartConfig で作業しているときに、ここでチャートで直接作業しているためだと思います。

既存のグラフで x 軸と y 軸のキャプションを変更する方法を教えてください (上記のように)。

どうもありがとう

4

1 に答える 1

1

多くの調査の後、私は現在、x 軸と y 軸のキャプションを動的に変更する方法がないように思われるという結論に達しました。

F5 キーを押すなどしてページを更新すると、軸のキャプションが変更されることがわかりました。リフレッシャーを実装してみましたが、どういうわけか動作は変わりませんでした。

したがって、私にとってはバグ (またはソフトウェアの障害) のように見えます。

同じことをしている私の回避策は、チャート全体を削除してから、新しい軸キャプションで完全に新しいチャートを追加することです。これは完全に高速で問題なく動作しますが、必要以上に多くのコード行を追加する必要があり、ロジックが本来よりも基本的に複雑になっているため、私の目には汚いソリューションです。

于 2012-09-04T12:44:04.520 に答える