我在使用 Achartengine 时遇到了一些问题。这非常有用,我知道。我正面临一个条形对齐问题。我的标签在中间,而我的条似乎有点移位。我放了一个图片链接:
标签对齐用橙色圈起来,而条形对齐用绿色圈起来。就像您会注意到这种行为发生在整个条形图上一样。这是我的代码:
public void execute(){
for(int i = 0; i < xyRenderer.getSeriesRendererCount(); i++){
SimpleSeriesRenderer seriesRenderer = xyRenderer.getSeriesRendererAt(i);
seriesRenderer.setDisplayChartValues(true);
}
chartView = ChartFactory.getBarChartView(this.context, xyDataset, xyRenderer, BarChart.Type.STACKED);
}
private void setupRenderer(XYMultipleSeriesRenderer renderer){
renderer.setXLabels(0);
renderer.setMargins(new int[]{20, 20, 20, 20});
renderer.setYLabels(5);
renderer.setOrientation(Orientation.HORIZONTAL);
renderer.setAxisTitleTextSize(12);
renderer.setChartTitleTextSize(12);
renderer.setLabelsTextSize(10);
renderer.setLegendTextSize(10);
renderer.setShowGrid(true);
renderer.setFitLegend(true);
renderer.setXAxisMin(0);
renderer.setYAxisMin(0);
renderer.setXAxisMax(7);
renderer.setYAxisMax(100);
renderer.setXLabelsAlign(android.graphics.Paint.Align.CENTER);
renderer.setXLabelsColor(Color.BLACK);
renderer.setYLabelsColor(0, Color.BLACK);
renderer.setAxesColor(Color.BLUE);
renderer.setLabelsColor(Color.RED);
renderer.setPanEnabled(false, false);
renderer.setZoomEnabled(false, false);
renderer.setApplyBackgroundColor(true);
renderer.setGridColor(Color.argb(0x00, 0x01, 0x01, 0x01));
renderer.setMarginsColor(Color.argb(0x00, 0x01, 0x01, 0x01));
renderer.setBackgroundColor(Color.argb(0x00, 0x01, 0x01, 0x01));
renderer.setBarSpacing(0.75);
renderer.clearXTextLabels();
renderer.setInScroll(true);
}
public void setChartData(HashMap<String, Double> teamData){
createSeriesRenderer(1);
double space = 0.75f;
CategorySeries categorySeries = new CategorySeries("% aproveitamento");
for(Map.Entry<String, Double> currentEntry : teamData.entrySet()){
String label = currentEntry.getKey();
DecimalFormat decimalFormat = new DecimalFormat("#0.0");
String formattedNum = decimalFormat.format(currentEntry.getValue());
xyRenderer.addXTextLabel(space, label);
categorySeries.add(Double.parseDouble(formattedNum));
space += 0.75;
}
xyDataset.addSeries(categorySeries.toXYSeries());
}
private void createSeriesRenderer(int howMany){
for(int i = 0; i < howMany; i++){
SimpleSeriesRenderer seriesRenderer = new SimpleSeriesRenderer();
seriesRenderer.setColor(Color.RED);
xyRenderer.addSeriesRenderer(seriesRenderer);
}
}
最奇怪的是在 AChartEngine 条形样本上,这种行为不会发生并且条形正确对齐。这是 AChartEngine 的错误吗?