增加条的宽度,并使用AChartEngine在两个Bar BarChart之间留出空间

时间:2014-09-23 14:17:26

标签: android bar-chart achartengine

我向XYSeriesRenderer添加了两个XYMultipleSeriesRenderer.我需要自定义XYSeriesRenderer想要增加条形图的宽度我包含此代码但它不起作用rendererm.setLineWidth(10);

然后两个条都紧密贴合,所以需要在XYSeriesRenderer之间留出一些空间?此代码mRenderer.setBarSpacing(.5);适用于XYMultipleSeriesRenderer,但我需要在两个XYSeriousRenderer之间留出空格。请参考我的代码和图片尽量给出你的建议。

seriesm = new CategorySeries("Male");
for(int i=0; i < malec.length; i++){
seriesm.add("Bar"+(i+1),malec[i]);
}

seriesf = new CategorySeries("Female");
for(int i=0; i < fmalec.length; i++){
seriesf.add("Bar"+(i+1),fmalec[i]);
}

dataSet = new XYMultipleSeriesDataset();  
dataSet.addSeries(seriesm.toXYSeries());                           
dataSet.addSeries(seriesf.toXYSeries());   

//customization of the chart

rendererm = new XYSeriesRenderer();     
rendererm.setColor(Color.RED);
rendererm.setDisplayChartValues(true);
rendererm.setLineWidth(20);

rendererf = new XYSeriesRenderer();     
rendererf.setColor(Color.YELLOW);
rendererf.setDisplayChartValues(true);
rendererf.setLineWidth(30);

mRenderer = new XYMultipleSeriesRenderer();  
mRenderer.addSeriesRenderer(rendererm);
mRenderer.addSeriesRenderer(rendererf);

mRenderer.setChartTitle("Gender");
mRenderer.setYTitle("No of Reports");
mRenderer.setZoomButtonsVisible(true);    
mRenderer.setShowLegend(true);
mRenderer.setShowGridX(true);      

mRenderer.setBarSpacing(.5);   
mRenderer.setApplyBackgroundColor(true);
mRenderer.setBackgroundColor(Color.BLACK);
mRenderer.setXAxisMin(0);
mRenderer.setYAxisMin(0); 
mRenderer.setXAxisMax(2);
mRenderer.setXLabels(0);
mRenderer.setPanEnabled(true, true);   

layout=(LinearLayout)findViewById(R.id.barchart);
mChartView=ChartFactory.getBarChartView(getApplicationContext(), dataSet, mRenderer, org.achartengine.chart.BarChart.Type.DEFAULT);
layout.addView(mChartView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));   

enter image description here

1 个答案:

答案 0 :(得分:2)

使用

renderer.setBarWidth(width);

用于设置条形宽度。