如何通过不显示y轴外的图形使图表在achartEngine中沿X轴滑动

时间:2015-03-02 05:53:04

标签: android achartengine

我正在研究aChartEngine并绘制条形图。图表我已经能够成功绘制,但因为我需要在动态上绘制X轴上的值,所以我使图表在x轴上可滚动但是当我在X轴上滚动图表时,条形图正在穿过Y轴,有些部分也可以在Y轴外面看到。

我认为这张图片会让我知道我的意思。
enter image description here

在上图中,我将X轴上的滚动设置为true,但是当我在X轴上滚动条形图时,条形图的某些部分正在穿过Y轴。我希望一旦触及Y轴,就不应该看到条形。
我尝试了很多选择但却没有想法。


MainActivity.java

public class MainActivity extends Activity {
 private View mChart;
    private String[] mMonth = new String[] {
            "Jan", "Feb" , "Mar", "Apr", "May", "Jun",
            "Jul", "Aug" , "Sep", "Oct", "Nov", "Dec"
    };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_sample_chart);
        openChart();
    }
    private void openChart(){
        int[] x = { 0,1,2,3,4,5,6,7, 8, 9, 10, 11 };
        int[] income = { 2000,2500,2700,3000,2800,3500,3700,3800, 0,0,0,0};
        // Creating an XYSeries for Income
        XYSeries incomeSeries = new XYSeries("Income");
        for(int i=0;i<x.length;i++){
            incomeSeries.add(i,income[i]);
        }

        XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
        dataset.addSeries(incomeSeries);
        XYSeriesRenderer incomeRenderer = new XYSeriesRenderer();
        incomeRenderer.setColor(Color.CYAN); //color of the graph set to cyan
        incomeRenderer.setFillPoints(true);
        incomeRenderer.setLineWidth(2);
        incomeRenderer.setDisplayChartValues(true);
        incomeRenderer.setDisplayChartValuesDistance(10);

        multiRenderer.setPanEnabled(true, false);
        multiRenderer.setClickEnabled(false);
        multiRenderer.setZoomEnabled(true, false);
        multiRenderer.setShowGridY(false);
        multiRenderer.setYLabels(10);
        multiRenderer.setYAxisMax(4000);
        multiRenderer.setXAxisMin(-0.5);
        multiRenderer.setBarSpacing(1.0);

        LinearLayout chartContainer = (LinearLayout) findViewById(R.id.chart);
        chartContainer.removeAllViews();
        mChart = ChartFactory.getBarChartView(ChartMainActivity.this, dataset, multiRenderer,Type.DEFAULT);
        chartContainer.addView(mChart);
}
}

0 个答案:

没有答案