我用achartengine开发了一个浮动条形图 . 图表需要显示非零图表值 . 即零图表值在Y轴上为零,客户希望它们被删除 . 我没有在api中看到只删除一个的方法 . 代码附有截图 . 所有帮助表示赞赏 . 谢谢!
图片在此链接:
{
public GraphicalView getChart(Context context, double[] minValues, double[] maxValues, String [] barLabels, String chartTitle) {
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
RangeCategorySeries series = new RangeCategorySeries("");
int length = minValues.length;
double min=0, max=0;
for (int k = 0; k < length; k++) {
//System.out.println("series:"+minValues[k]+" "+maxValues[k]);
min = Double.parseDouble(df2.format(minValues[k]));
max = Double.parseDouble(df2.format(maxValues[k]));
series.add( min, max);
}
dataset.addSeries(series.toXYSeries());
int[] colors = new int[] { Color.CYAN };
XYMultipleSeriesRenderer renderer = buildBarRenderer(colors);
setChartSettings(renderer, chartTitle, "", "Strokes Gained", 0.5, barLabels.length+1, (yMin), yMax, Color.GRAY, Color.LTGRAY);
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
int width = display.getWidth(); // deprecated
//int height = display.getHeight(); // deprecated
//System.out.println("width1:"+width+" "+height);
LayoutParams params = layout.getLayoutParams();
int height = params.height;
//System.out.println("width2:"+width+" "+height+" "+params.width+" "+params.height);
layout.setLayoutParams(new LinearLayout.LayoutParams((int)(width*.95), height));
//int height = display.getHeight(); // deprecated
renderer.setPanEnabled(false, false);
renderer.setBarSpacing(0.5);
renderer.setXLabels(0);
renderer.setYLabels(10);
for (int i=0;i<barLabels.length;i++)renderer.addXTextLabel(i+1, barLabels[i]);
renderer.setInScroll(true);
renderer.setMargins(new int[] {30, 70, 10, 0});
renderer.setYLabelsAlign(Align.RIGHT);
renderer.setShowGrid(true);
renderer.setPanLimits(new double[] { -10, 20, -10, 40 });
renderer.setZoomLimits(new double[] { -10, 20, -10, 40 });
XYSeriesRenderer r = (XYSeriesRenderer) renderer.getSeriesRendererAt(0);
r.setShowLegendItem(false);
r.setDisplayChartValues(true);
r.setChartValuesTextSize(ChartValuesTextSize); // change to 20
r.setChartValuesSpacing(3);
r.setGradientEnabled(true);
r.setGradientStart((yMin), Color.RED);
r.setGradientStop(yMax, Color.GREEN);
r.setChartValuesFormat(dfvalues);
return ChartFactory.getRangeBarChartView(context, dataset, renderer, Type.DEFAULT );
}