2014-02-19 139 views
4

我使用achartengine在android應用程序中繪製我的圖表,並有2個問題與條形圖。Android - achartengine條形圖問題

1:在頂欄值不對準中心

2:巴的寬度太小時在圖表僅有1巴

enter image description here

enter image description here

這裏我的代碼設置圖表

GraphicalView mChart; 
    // Creating an XYSeries for Income 
    XYSeries incomeSeries = new XYSeries("\n" + note); 
    // Adding data to Series 
    // Arraylist<String> althongtin include input data (some numbers character, eg: {125, 4356, 50000}) 
    for(int i=0;i<althongtin.size();i++){ 
     incomeSeries.add(i, Double.parseDouble(althongtin.get(i))); 
    } 

    // Creating a dataset to hold each series 
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); 
    // Adding Income Series to the dataset 
    dataset.addSeries(incomeSeries); 
    XYSeriesRenderer incomeRenderer = new XYSeriesRenderer(); 

    incomeRenderer.setColor(color); 
    incomeRenderer.setChartValuesTextSize(20); 
    incomeRenderer.setFillPoints(true); 
    incomeRenderer.setDisplayChartValues(true); 
    incomeRenderer.setChartValuesTextAlign(Paint.Align.CENTER); 

    XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer(); 

    multiRenderer.setXLabels(0); 
    multiRenderer.setChartTitle(ten); 
    multiRenderer.setXTitle(cotx); 
    multiRenderer.setYTitle(coty); 
    multiRenderer.setYLabelsAlign(Paint.Align.LEFT); 
    multiRenderer.setBarSpacing(1); 
    multiRenderer.setBarWidth(50); 

    multiRenderer.setYAxisMin(0); 
    multiRenderer.setYAxisMax(max + (max/10)); 
    multiRenderer.setXAxisMin(-1); 
    multiRenderer.setXAxisMax(althongtin.size() + 1); 
    multiRenderer.setLabelsTextSize(15); 
    multiRenderer.setLegendTextSize(20); 
    multiRenderer.setAxisTitleTextSize(20); 
    multiRenderer.setChartTitleTextSize(20); 

    multiRenderer.setLabelsColor(Color.BLACK); 
    multiRenderer.setAxesColor(Color.BLACK); 
    multiRenderer.setApplyBackgroundColor(true); 
    multiRenderer.setBackgroundColor(Color.TRANSPARENT); 
    multiRenderer.setMarginsColor(Color.argb(0,255,255,255)); 
    multiRenderer.setXLabelsColor(Color.BLACK); 
    multiRenderer.setYLabelsColor(0, Color.BLACK); 

    multiRenderer.addSeriesRenderer(incomeRenderer); 

    String[] types = new String[] {BarChart.TYPE}; 

    mChart = (GraphicalView) ChartFactory.getCombinedXYChartView(getBaseContext(), dataset, multiRenderer, types); 

    multiRenderer.setClickEnabled(true); 
    multiRenderer.setSelectableBuffer(10); 

    chartLayout.addView(mChart); 

謝謝。

更新:第二個問題是由升級固定achartengine 1.2.0。謝謝你,丹。

+0

你上面的代碼很好。關於你的數據集代碼和GraphicalView? – keshav

+0

已更新我的代碼 –

+0

@UnokenMouny您好,我可以知道您是如何設置條間距的?它沒有爲我工作,當我使用「multiRenderer.setBarSpacing(1);」謝謝。 – AuroraBlaze

回答

1

對於第一個問題,您可能需要升級到1.2.0每晚構建。

對於第二之一,有:renderer.setBarWidth(widthInPixels);因爲這是解決方案,以設定的條寬時,有在一系列的一個單個項目。

+0

=))哦男人....我升級到1.2.0和第二個問題是固定的.....但一日一仍沒有得到改變......噢 –

+0

@丹嗨,我面對阿林中心的同樣問題?你是否得到了解決方案?另一個是我不能改變顏色只有酒吧值不是條形圖?我們需要對齊center.plz幫助的黑色條形值 – Google

0

爲什麼不使用ChartFactory.getBarChartView代替ChartFactory.getCombinedXYChartIntent

我認爲它會解決你的問題。

+0

沒有改變,我仍然得到同樣的問題 –