achartengine多柱状图(自定义X轴显示参数)

使用achartengine绘制多状图,界面效果如下:

achartengine多柱状图(自定义X轴显示参数)_第1张图片achartengine多柱状图(自定义X轴显示参数)_第2张图片



achartengine1.0.0到1.2.0jar包下载:点击打开链接


关键代码:(导入jar后,拷贝可用)

//柱状图的多个序列的名字
String[] titles = new String[] { "金额", "游戏收入","其他" };
//存放柱状图多个序列的值
ArrayList value = new ArrayList();
double[] d1 = new double[] {0,55,15, 30, 25, 12,0 };
double[] d2 = new double[] {0,35,42, 12, 1, 35,0 };
double[] d3 = new double[] {0,22,54, 41, 12, 25,0 };
value.add(d1);
value.add(d2);
value.add(d3);
//int maxVal1 = ChartUtil.getMaxVal(d1);
//int maxVal2 = ChartUtil.getMaxVal(d2);
//多个状的颜色
int[] colors = { R.color.color_reseda, R.color.color_orange2,R.color.color_blue};
//设置x轴和y轴的最大最小值
//double[] val = new double[] { 1,
//		7, 0, maxVal1 > maxVal2 ?maxVal1:maxVal2};
int[] xVal = new int[] {1, 2, 3,4,5,6,7};
//自定义X轴显示的数据
String[] xLableVal = new String[]{"","取款","存款","彩票","体育","真人",""};
//生成柱状图view
GraphicalView mGraphicalView = ChartUtil.xychar(titles, value, colors, xLableVal, 5, val, xVal, "", true);
//将生成的mGraphicalView添加到你需要显示的布局里面去
mLayoutChart.addView(mGraphicalView);

//调用方法
public static GraphicalView xychar(String[] titles, ArrayList value,
	int[] colors, String[] xlableVal, int y,double[] range, int []xLable ,String xtitle, boolean f) {
//多个渲染
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
//布局的(上左下右)margin
renderer.setMargins(new int[] { 10, 35,20,25 });

//多个序列的数据集
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
//构建数据集以及渲染
for (int i = 0; i < titles.length; i++) {

	XYSeries series = new XYSeries(titles[i]);
	double [] yLable= value.get(i);
	for (int j=0;j< yLable.length;j++) {
		series.add(xLable[j],yLable[j]);
	}
	dataset.addSeries(series);
	XYSeriesRenderer xyRenderer = new XYSeriesRenderer();
	// 设置颜色
	xyRenderer.setColor(MyApplication.getCurrentActivity().getResources().getColor(colors[i]));
	// 设置点的样式 //
	xyRenderer.setPointStyle(PointStyle.SQUARE);
	// 将要绘制的点添加到坐标绘制中
	renderer.addSeriesRenderer(xyRenderer);
}
//在X轴显示自定义的标签,那么首先要设置renderer.setXLabels(0);其次我们要renderer.addXTextLabel循环添加
//设置x轴标签数
renderer.clearXTextLabels();
for (int i = 0; i < xlableVal.length; i++) {
	renderer.addXTextLabel(i+1, xlableVal[i]);;
}
renderer.setXLabels(0);
//设置Y轴标签数
renderer.setYLabels(y);
//设置x轴的最大值
//		renderer.setXAxisMax(x - 0.5);
//设置轴的颜色
renderer.setAxesColor(Color.BLACK);
//设置x轴和y轴的标签对齐方式
renderer.setXLabelsAlign(Align.CENTER);
renderer.setYLabelsAlign(Align.RIGHT);
// 设置现实网格
renderer.setShowGrid(true); 
renderer.setYTitle("金额(千元)");
renderer.setShowAxes(true); 
// 设置条形图之间的距离
renderer.setBarSpacing(0.2);
renderer.setInScroll(false);
renderer.setPanEnabled(false, false);
renderer.setClickEnabled(false);
//设置x轴和y轴标签的颜色
renderer.setXLabelsColor(R.color.color_gray);
renderer.setYLabelsColor(0,R.color.color_gray);

int length = renderer.getSeriesRendererCount();
//设置图标的标题
renderer.setChartTitle(xtitle);
renderer.setChartTitleTextSize(15);
renderer.setLabelsColor(R.color.color_gray);

//设置图例的字体大小
renderer.setLegendTextSize(15);
renderer.setLabelsTextSize(12);
renderer.setShowLegend(true);
// 设置图例文本大小
renderer.setLegendHeight(40);
// 设置坐标轴标签字体大小  
renderer.setAxisTitleTextSize(12);

//设置x轴和y轴的最大最小值
renderer.setMarginsColor(0x00888888);

GraphicalView mChartView = ChartFactory.getBarChartView(MyApplication.getCurrentActivity(),
		dataset, renderer, Type.DEFAULT);

return mChartView;

}



补充其他参数描述:

1.    修改背景色或设置背景图片
背景色设置需要设置两项:setMarginsColor(设置四边颜色)以及setBackgroundColor(设置中间背景色)
2.    setAxisTitleTextSize(16);// 设置坐标轴标题文本大小
3.    setChartTitleTextSize(20); // 设置图表标题文本大小
4.    setLabelsTextSize(15); // 设置轴标签文本大小
5.    setLegendTextSize(15); // 设置图例文本大小
6.    renderer.setChartTitle( "设置柱图名称");//设置柱图名称
7.    renderer.setXTitle( "XX" );//设置X轴名称
8.    renderer.setYTitle( "YY" );//设置Y轴名称
9.    renderer.setXAxisMin(0.5);//设置X轴的最小值为0.5
10.  renderer.setXAxisMax(5.5);//设置X轴的最大值为5
11.  renderer.setYAxisMin(0);//设置Y轴的最小值为0
12.  renderer.setYAxisMax(500);//设置Y轴最大值为500
13.  renderer.setDisplayChartValues(true);//设置是否在柱体上方显示值
14.  renderer.setShowGrid(true);//设置是否在图表中显示网格
15.  renderer.setXLabels(0);//设置X轴显示的刻度标签的个数
16.  如果想要在X轴显示自定义的标签,那么首先要设置renderer.setXLabels(0);其次我们要renderer.addTextLabel()循环添加
17.  renderer.setXLabelsAlign(Align.RIGHT);//设置刻度线与X轴之间的相对位置关系
18.  renderer.setYLabelsAlign(Align.RIGHT);//设置刻度线与Y轴之间的相对位置关系
19.  renderer.setZoomButtonsVisible(true);//设置可以缩放
20.  renderer.setPanLimits(newdouble[] { 0, 20, 0, 140 });//设置拉动的范围
21.  renderer.setZoomLimits(newdouble[] { 0.5, 20, 1, 150 });//设置缩放的范围
22.  renderer.setRange(newdouble[]{0d, 5d, 0d, 100d}); //设置chart的视图范围
23.  renderer.setFitLegend(true);// 设置是否显示图例
24.  renderer.setClickEnabled(true)//设置是否可以滑动及放大缩小;
25.ChartView.repaint();重新绘图
26.关于AChartEngine的点击事件,双击事件,滑动事件均可以用自定义事件解决,但是需要注意的是先设置renderer.setClickEnabled(false);
27.若是添加图形后变形,可以设置 renderer.setInScroll(true); 
28.renderer.setGridColor();//设置网格颜色 
29.renderer.setAxesColor();//设置坐标轴颜色
30.Renderer.setShowLegend(true); //显示底部说明
31.Renderer.setShowLabels(false); //不显示标签
32.renderer.setLegendTextSize(20);//设置左下角表注的文字大小
33.renderer.setZoomButtonsVisible(true);//设置显示放大缩小按钮  
34.renderer.setZoomEnabled(false);//设置不允许放大缩小.  
35.renderer.setChartTitleTextSize(30);//设置图表标题的文字大小
36.renderer.setChartTitle("统计结果");//设置图表的标题  默认是居中顶部显示
37.renderer.setLabelsTextSize(20);//饼图上标记文字的字体大小
38.renderer.setLabelsColor(Color.WHITE);//饼图上标记文字的颜色
39.renderer.setPanEnabled(false);//设置是否可以平移
40.renderer.setDisplayValues(true);//是否显示值
41.renderer.setClickEnabled(true);//设置是否可以被点击

你可能感兴趣的:(android高级控件)