1

AChartEngine によって生成された横棒グラフがあります。しかし、私は問題を抱えています。

アプリケーションが最初に起動すると、Y 軸の最小値は 0 から始まるため、この写真に示すようにすべてのバーが表示されます。

申し込み開始です

ただし、ユーザーがズームアウト ボタンを押すと、グラフ全体がズームアウトし、この写真のようにバーが浮きます。

ズームアウト時

ご覧のとおり、X 軸が移動し、原点 (0,0) が元の位置になくなりました。

私の質問は次のとおりです。ズームアウトしたときにバーがY軸に整列するように軸をロックすることは可能ですか?

これが私のコードです:

public class BarGraph {

    public Intent getIntent(Context context) {

        int y[] = { 25, 10, 15, 20 };

        CategorySeries series = new CategorySeries("Bar1");
        for (int i = 0; i < y.length; i++) {
            series.add("Bar" + (i + 1), y[i]);
        }

        // collection of series under one object, there could any number of series
        XYMultipleSeriesDataset dataSet = new XYMultipleSeriesDataset(); 
        dataSet.addSeries(series.toXYSeries()); 

        // customization of the chart

        XYSeriesRenderer renderer = new XYSeriesRenderer(); // one renderer for
                                                            // one series
        renderer.setColor(Color.RED);
        renderer.setDisplayChartValues(true);
        renderer.setChartValuesSpacing((float) 5.5d);
        renderer.setLineWidth((float) 10.5d);

        //collection of multiple vales for one renderer or series
        XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer(); 

        mRenderer.addSeriesRenderer(renderer);
        mRenderer.setChartTitle("Demo Graph");
        // mRenderer.setXTitle("xValues");
        mRenderer.setYTitle("Rupee");
        mRenderer.setZoomButtonsVisible(true);
        mRenderer.setShowLegend(true);
        mRenderer.setShowGridX(true); // this will show the grid in graph
        mRenderer.setShowGridY(true);
        // mRenderer.setAntialiasing(true);
        mRenderer.setBarSpacing(.5); // adding spacing between the line or
                                        // stacks
        mRenderer.setApplyBackgroundColor(true);
        mRenderer.setBackgroundColor(Color.BLACK);
        mRenderer.setXAxisMin(0);
        mRenderer.setYAxisMin(0);
        mRenderer.setXAxisMax(5);
        mRenderer.setYAxisMax(50);
        //
        mRenderer.setXLabels(0);
        mRenderer.addXTextLabel(1, "Income");
        mRenderer.addXTextLabel(2, "Saving");
        mRenderer.addXTextLabel(3, "Expenditure");
        mRenderer.addXTextLabel(4, "NetIncome");


        mRenderer.setPanEnabled(true, false); // will fix the chart position
        mRenderer.setOrientation(Orientation.VERTICAL);

        Intent intent = ChartFactory.getBarChartIntent(context, dataSet,
                mRenderer, Type.DEFAULT);

        return intent;
    }
}

また、軸ラベルに割り当てられたフォント サイズとスペースをどのように調整しますか?

助けてくれてありがとう。

4

1 に答える 1

2

この方法でズーム動作を微調整できます。

mRenderer.setZoomEnabled(true, false);

ラベルのサイズには、次を使用します。

mRenderer.setLabelsTextSize();

パディングには、次を使用します。

mRenderer.setXLabelsPadding();
于 2013-10-24T06:10:11.487 に答える