achartengine 绘制柱状图
来源:互联网 发布:天猫美工工资 编辑:程序博客网 时间:2024/05/22 17:46
package com.zdst_03.acharttest;import android.app.Activity;import android.graphics.Color;import android.graphics.Paint;import android.os.Bundle;import android.view.Window;import android.widget.LinearLayout;import org.achartengine.chart.AbstractChart;import org.achartengine.chart.BarChart;import org.achartengine.model.CategorySeries;import org.achartengine.model.XYMultipleSeriesDataset;import org.achartengine.renderer.SimpleSeriesRenderer;import org.achartengine.renderer.XYMultipleSeriesRenderer;import java.util.ArrayList;import java.util.List;public class AChartTestAct extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.getWindow().requestFeature(Window.FEATURE_NO_TITLE);// setContentView(R.layout.activity_main); LinearLayout linearLayout=new LinearLayout(this); linearLayout.setOrientation(LinearLayout.VERTICAL); //第一个柱状图展示 List<double[]> values = new ArrayList<>(); //两根柱子数据 values.add(new double[]{230, 180, 240, 444, 370, 250, 430, 200}); values.add(new double[]{200, 100, 210, 240, 270, 200, 323, 100}); //两根柱子的颜色 int[] colors = new int[]{0XFF61A0A8, 0xFFD4A156}; String[] titles = new String[]{"已检查", "未检查"}; MyGraphicView mView = new MyGraphicView(this, (AbstractChart)setBarChartData(values,colors,titles)); linearLayout.addView(mView); //第二个柱状图展示 List<double[]> values2 = new ArrayList<>(); //两根柱子数据 values2.add(new double[]{230, 180, 240, 444, 370, 250, 430, 200}); values2.add(new double[]{200, 100, 210, 240, 270, 200, 323, 100}); //两根柱子的颜色 int[] colors2 = new int[]{0XFFD48265, 0xFF91C7AE}; String[] titles2 = new String[]{"已整改", "未整改"}; MyGraphicView mView1 = new MyGraphicView(this, (AbstractChart)setBarChartData(values2,colors2,titles2)); linearLayout.addView(mView1); setContentView(linearLayout);// Intent intent = ChartFactory.getBarChartIntent(this, dataset, renderer, BarChart.Type.STACKED);// startActivity(intent); } BarChart setBarChartData(List<double[]> values,int[] colors,String[] titles){ String years[] = {"龙城街道", "坪地街道", "龙岗街道", "横岗街道", "平湖街道", "南湾街道", "布吉街道", "坂田街道"}; //设置坐标轴 XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(); //设置坐标文字大小 renderer.setAxisTitleTextSize(16); //设置标题文字大小 renderer.setChartTitleTextSize(10); //坐标轴刻度文字大小 renderer.setLabelsTextSize(18); //标注文字大小 renderer.setLegendTextSize(20); //设置图表高度 renderer.setLegendHeight(100); //设置图表距屏幕的距离 第一个值“右”,第二个值“上”第三个值“左”第四个值“下” renderer.setMargins(new int[]{50, 50, 100, 40}); int length = colors.length; for (int i = 0; i < length; i++) { SimpleSeriesRenderer r = new SimpleSeriesRenderer(); r.setColor(colors[i]); renderer.addSeriesRenderer(r); } // 设置是否在柱体上方显示值 renderer.setDisplayChartValues(false); // 设置是否在图表中显示网格 renderer.setShowGrid(true); //网格颜色 renderer.setGridColor(0x0C0D0D); renderer.setXLabelsAlign(Paint.Align.RIGHT); renderer.setYLabelsAlign(Paint.Align.LEFT); // 设置X轴显示的刻度标签的个数 renderer.setXLabels(0); //循环添加Xlabel其中显示的label放在years数组中 for (int i = 0; i < 8; i++) { renderer.addTextLabel(i + 1, years[i]); } // 设置Y轴显示的刻度标签的个数 renderer.setYLabels(6); //显示放大缩小按钮 renderer.setZoomButtonsVisible(false); //放大缩小的倍数 renderer.setZoomRate(0.5f); //柱子大小 renderer.setBarSpacing(10); //柱子间宽度 renderer.setBarSpacing(2.0f); //设置是否需要显示坐标轴 renderer.setShowAxes(true); //设置图表外颜色 renderer.setApplyBackgroundColor(true); renderer.setMarginsColor(Color.WHITE); //设置图表的背景色 renderer.setLabelsColor(Color.BLACK);// renderer.setChartTitle("只是测试柱子");//标题文字// renderer.setXTitle("Y轴"); // renderer.setYTitle("企业数"); // 允许左右拖动,但不允许上下拖动. renderer.setPanEnabled(true, false); // 设置X轴的最小值 renderer.setXAxisMin(0.5); //设置点击事件 renderer.setClickEnabled(false); // 设置X轴的最大值 renderer.setXAxisMax(6); // 设置Y轴的最小值 renderer.setYAxisMin(0); // 设置Y轴的最大值 renderer.setYAxisMax(500); //坐标轴颜色 renderer.setAxesColor(Color.BLACK); //坐标名称以及标题颜色// renderer.setLabelsColor(Color.RED); //Y轴坐标顺时针旋转度 renderer.setYLabelsAngle(5f); //X轴坐标顺时针旋转度 renderer.setXLabelsAngle(0f); //设置X轴坐标字体颜色 renderer.setXLabelsColor(Color.BLACK); //设置Y轴坐标字体颜色 renderer.setYLabelsColor(0, Color.BLACK); renderer.setLabelsTextSize(18); renderer.setOrientation(XYMultipleSeriesRenderer.Orientation.VERTICAL); XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();//设置显示数据 int length2 = titles.length; for (int i = 0; i < length2; i++) { CategorySeries series = new CategorySeries(titles[i]); double[] v = values.get(i); int seriesLength = v.length; for (int k = 0; k < seriesLength; k++) { series.add(v[k]); } dataset.addSeries(series.toXYSeries()); } return new BarChart(dataset, renderer, BarChart.Type.STACKED); }}
package com.zdst_03.acharttest;import android.content.Context;import org.achartengine.GraphicalView;import org.achartengine.chart.AbstractChart;/** * Created by ZTSD-03 on 2016/5/30. */public class MyGraphicView extends GraphicalView { public MyGraphicView(Context context, AbstractChart chart) { super(context, chart); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); int widthSpecMode=MeasureSpec.getMode(widthMeasureSpec); int widthSpecSize=MeasureSpec.getSize(widthMeasureSpec); int heightSpecMode=MeasureSpec.getMode(heightMeasureSpec); int heighSpecSize=MeasureSpec.getSize(heightMeasureSpec); if(widthSpecMode==MeasureSpec.AT_MOST&&heightSpecMode==MeasureSpec.AT_MOST){ setMeasuredDimension(600,600); } else if(widthSpecMode==MeasureSpec.AT_MOST){ setMeasuredDimension(600,heighSpecSize); } else if(heightSpecMode==MeasureSpec.AT_MOST){ setMeasuredDimension(widthSpecSize,600); } }}
最后在manifest配置achart
<activity android:name="org.achartengine.GraphicalActivity"></activity>
0 1
- android Achartengine绘制柱状图
- achartengine 绘制柱状图
- Achartengine.jar绘制动态图形二 --柱状图
- Android 开发 使用achartengine-0.7.0.jar 绘制柱状图
- 使用AChartEngine画柱状图
- 使用AChartEngine画柱状图
- AchartEngine 画柱状图
- Android AChartEngine画柱状图
- AChartEngine中柱状图
- 柱状图绘制
- [Android]使用AChartEngine画柱状图
- [Android]使用AChartEngine画柱状图
- AchartEngine的柱状图属性设置
- AChartEngine图标库之动态柱状图
- AchartEngine的柱状图属性设置
- AchartEngine的柱状图属性设置
- 使用achartengine绘制曲线图
- achartengine绘制折线图
- 笔记一:关于在Windows环境下使用cmd向mysql数据库中导入.sql数据表文件
- (二) P - P Save Luke 【数学】
- Linux学习总结(2)——linux常用命令大全
- session、cookie与“记住我的登录状态”的功能的实现
- Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式)介绍
- achartengine 绘制柱状图
- Java泛型
- Pull解析
- 谈谈iOS面试常提及到的线程间的通信
- 大数开方
- 你真的了解load方法么?
- C++ string split函数实现
- Jsp9个内置对象详解
- JavaWeb中导出excel文件