1

サンプルコードのデータサンプルを使用すると、すべて正常に機能します。

Date[] dateValues = new Date[] { new Date(95, 0, 1), new Date(95, 3, 1), new Date(95, 6, 1),
                new Date(95, 9, 1), new Date(96, 0, 1), new Date(96, 3, 1), new Date(96, 6, 1),
                new Date(96, 9, 1), new Date(97, 0, 1), new Date(97, 3, 1), new Date(97, 6, 1),
                new Date(97, 9, 1), new Date(98, 0, 1), new Date(98, 3, 1), new Date(98, 6, 1),
                new Date(98, 9, 1), new Date(99, 0, 1), new Date(99, 3, 1), new Date(99, 6, 1),
                new Date(99, 9, 1), new Date(100, 0, 1), new Date(100, 3, 1), new Date(100, 6, 1),
                new Date(100, 9, 1), new Date(100, 11, 1) };
        dates.add(dateValues);
        double[] valueValues = { 4.9, 5.3, 3.2, 4.5, 6.5, 4.7, 5.8, 4.3, 4, 2.3, -0.5, -2.9, 3.2, 5.5,
                4.6, 9.4, 4.3, 1.2, 0, 0.4, 4.5, 3.4, 4.5, 4.3, 4 };
        values.add(valueValues);

しかし、自分のデータを使おうとすると、グラフは特に描かれます。

Set<Date> st = data.keySet();
Iterator<Date> it = st.iterator();
Date[] dateValues = new Date[data.size()]; 
double[] valueValues = new double[data.size()];
for (short i = 0; i < data.size(); i++) {
    Date temp = it.next();
    dateValues[i] = temp;
    valueValues[i] = data.get(temp);
}

dates.add(dateValues);
values.add(valueValues);

グラフが拡大されているように、中央部分だけを意味します。

アプリに表示されるもの

私が見たいものの代わりに

double ymin = getYMin(valueValues) - (getYMax(valueValues) - getYMin(valueValues)) * 0.1;
        double ymax = getYMax(valueValues) + (getYMax(valueValues) - getYMin(valueValues)) * 0.1;
        int[] colors = new int[] { Color.GREEN };
        PointStyle[] styles = new PointStyle[] { PointStyle.POINT };
        XYMultipleSeriesRenderer renderer = buildRenderer(colors, styles);
        setChartSettings(renderer, name, xtitle, ytitle, dateValues[0].getTime(),
            dateValues[dateValues.length - 1].getTime(), ymin, ymax, Color.GRAY, Color.LTGRAY);
        renderer.setShowGrid(true);
        renderer.setYLabels(5);
        renderer.setZoomButtonsVisible(true);
        renderer.setZoomEnabled(true, false);
        renderer.setPanEnabled(false, false);
4

2 に答える 2

2

デフォルトでは、AChartEngineは表示されるデータの最適な範囲を計算します。これは、画面にすべてのデータを表示しようとすることを意味します。ただし、次を使用してこれを微調整できます。

renderer.setXAxisMin();
renderer.setXAxisMax();
renderer.setYAxisMin();
renderer.setYAxisMax();
于 2012-07-18T19:04:01.667 に答える
0

解決しました。私の日付データはソートされていませんでした。並べ替えた後、グラフは正常に表示されます。

于 2012-07-19T08:37:45.223 に答える