0

私は JFreeChart 1.0.14 を使用しており、最大範囲値からドメイン値を取得したいと考えています。私は XYLineChart を使用していますが、今のところ、次のコードで範囲値の最大値を取得しています。

Number maximum = DatasetUtilities.findMaximumRangeValue(dataset);
maximum.floatValue();
String intensityMax = String.valueOf(maximum);
test.setText(intensityMax); //test is a jTextField

しかし、最大範囲値から対応するドメイン値を取得するにはどうすればよいでしょうか?

たとえば、私の最高値 (y 軸) は 8212 で、これは 510 (x 軸) に対応します。Yの対応する値を取得するにはどうすればよいですか?

この質問に関連して、別の問題があります。ValueMarker を最大範囲値に配置したいと考えています。いいえ、これを試しましたが、どこに問題があるのか​​ わかりません(エラーが発生せず、何も起こりません):

Number maximum = DatasetUtilities.findMaximumRangeValue(dataset);
ValueMarker max = new ValueMarker(maximum.floatValue());
max.setPaint(Color.orange);
max.setLabel("highest value");
plot.addDomainMarker(max);

私はどんな助けも楽しみにしています, 敬意を表して, アンドリュー

4

1 に答える 1

1

2 番目の点に関しては、範囲の最大値を見つけていますが、ドメイン軸にマーカーを追加しています。コードを次のように変更した場合:

Number maximum = DatasetUtilities.findMaximumRangeValue(dataset);
ValueMarker max = new ValueMarker(maximum.floatValue());
max.setPaint(Color.orange);
max.setLabel("Highest Value");
max.setLabelTextAnchor(TextAnchor.CENTER_LEFT);
plot.addRangeMarker(max,Layer.BACKGROUND);

次のようなチャートが得られます。

ここに画像の説明を入力

最初のポイントとして、次のチャートを検討してください。

ここに画像の説明を入力

4 つの「最高」範囲バルブがあるため、最高値に対応するドメイン値は 2.5、4、6.g、および 8 になります。XYSeries には、一意の範囲 (y) 値が用意されていません。

あなたはこれを行うことができます

    Number xValue = DatasetUtilities.findMinimumDomainValue(dataset);
    for (int seriesIndex = 0 ; seriesIndex < dataset.getSeriesCount() ; seriesIndex++){
        for (int itemIndex = 0 ; itemIndex < dataset.getItemCount(seriesIndex) ; itemIndex ++){
            Number yValue = dataset.getY(seriesIndex, itemIndex);
            if (yValue.equals(maximum)){
                if (dataset.getX(seriesIndex, itemIndex).floatValue() > xValue.floatValue())
                    xValue = dataset.getX(seriesIndex, itemIndex);
            }
        }
    }
    ValueMarker maxX = new ValueMarker(xValue.floatValue());
    maxX.setPaint(Color.red);
    maxX.setLabelTextAnchor(TextAnchor.CENTER_LEFT);
    plot.addDomainMarker(maxX,Layer.BACKGROUND);

ここに画像の説明を入力

于 2012-11-15T09:02:29.630 に答える