Android统计图表之柱状图(条形图)

柱状图是统计图表中经常用到的一种图表,比如降雨量之类的统计展示。我之前写了一些关于Android上的统计图表库MPAndroidChart,附录了一些我自己写的技术文档,在这些文档中介绍了MPAndroidChart的详细内容。

文章:
1,《Android统计图表MPAndroidChart》,http://blog.csdn.net/zhangphil/article/details/47656521
2,《基于Android MPAndroidChart实现腾讯QQ群数据统计报表核心功能》,http://blog.csdn.net/zhangphil/article/details/47685515
3,《Android实现天气预报温度/气温折线趋势图》,http://blog.csdn.net/zhangphil/article/details/47702245

现在基于Android平台上的MPAndroidChart,在Android上实现柱状图,以降雨量为例,制作一个简单的降雨量柱状图(条形图)。

测试的主MainActivity.java

package zhangphil.barchart;import java.text.DecimalFormat;import java.util.ArrayList;import com.github.mikephil.charting.charts.BarChart;import com.github.mikephil.charting.components.Legend;import com.github.mikephil.charting.components.XAxis;import com.github.mikephil.charting.components.YAxis;import com.github.mikephil.charting.components.Legend.LegendForm;import com.github.mikephil.charting.components.Legend.LegendPosition;import com.github.mikephil.charting.components.XAxis.XAxisPosition;import com.github.mikephil.charting.components.YAxis.YAxisLabelPosition;import com.github.mikephil.charting.data.BarData;import com.github.mikephil.charting.data.BarDataSet;import com.github.mikephil.charting.data.BarEntry;import com.github.mikephil.charting.utils.ValueFormatter;import android.support.v7.app.ActionBarActivity;import android.graphics.Color;import android.os.Bundle;public class MainActivity extends ActionBarActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);BarChart mBarChart = (BarChart) findViewById(R.id.bar_chart);setBarChartStyle(mBarChart);// 制作10个数据点。setData(mBarChart, 10);}private void setBarChartStyle(BarChart mBarChart) {mBarChart.setDrawBarShadow(false);mBarChart.setDrawValueAboveBar(true);mBarChart.setDescription("@ http://blog.csdn.net/zhangphil");mBarChart.setMaxVisibleValueCount(60);mBarChart.setPinchZoom(false);mBarChart.setDrawGridBackground(false);XAxis xAxis = mBarChart.getXAxis();xAxis.setPosition(XAxisPosition.BOTTOM);xAxis.setDrawGridLines(false);xAxis.setSpaceBetweenLabels(2);YAxis leftAxis = mBarChart.getAxisLeft();leftAxis.setLabelCount(5, false);leftAxis.setPosition(YAxisLabelPosition.OUTSIDE_CHART);leftAxis.setSpaceTop(15f);leftAxis.setTextColor(Color.BLUE);YAxis rightAxis = mBarChart.getAxisRight();rightAxis.setDrawGridLines(false);rightAxis.setLabelCount(5, false);rightAxis.setSpaceTop(15f);rightAxis.setTextColor(Color.GREEN);Legend mLegend = mBarChart.getLegend();mLegend.setPosition(LegendPosition.BELOW_CHART_CENTER);mLegend.setForm(LegendForm.SQUARE);mLegend.setFormSize(15f);mLegend.setTextSize(12f);mLegend.setXEntrySpace(5f);}private void setData(BarChart mBarChart, int count) {ArrayList<String> xVals = new ArrayList<String>();for (int i = 0; i < count; i++) {xVals.add(i, i + "");}ArrayList<BarEntry> yVals = new ArrayList<BarEntry>();for (int i = 0; i < count; i++) {float val = (float) (Math.random() * 100);yVals.add(new BarEntry(val, i));}BarDataSet mBarDataSet = new BarDataSet(yVals, "柱状图测试数据");// 如果是0f,那么柱状图之间将紧密无空隙的拼接在一起形成一片。mBarDataSet.setBarSpacePercent(30f);// 柱状图柱的颜色mBarDataSet.setColor(Color.RED);// 当柱状图某一柱被选中时候的颜色mBarDataSet.setHighLightColor(Color.YELLOW);mBarDataSet.setValueFormatter(new ValueFormatter() {@Overridepublic String getFormattedValue(float value) {DecimalFormat decimalFormat = new DecimalFormat(".0");String s = decimalFormat.format(value) + "毫米";return s;}});ArrayList<BarDataSet> dataSets = new ArrayList<BarDataSet>();dataSets.add(mBarDataSet);BarData mBarData = new BarData(xVals, dataSets);mBarData.setValueTextSize(12f);mBarChart.setData(mBarData);}}




MainActivity.java需要的布局文件activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent" >   <com.github.mikephil.charting.charts.BarChart        android:id="@+id/bar_chart"        android:layout_width="match_parent"        android:layout_height="match_parent"/></RelativeLayout>


运行结果如图:

Android统计图表之柱状图(条形图)_第1张图片


更多相关文章

  1. Android Studio App设置TextView文字内容大小颜色
  2. 去除或替换listview 默认的点击选中时的颜色
  3. 最牛逼android上的图表库MpChart(二) 折线图
  4. android颜色值的表示方法android:background="#FFFFFFFF"的意思
  5. 【Android UI】Android颜色系大全
  6. Android 4.4以后设置状态栏颜色
  7. Android listview分割线的颜色设置
  8. Android 系统字体和颜色样式

随机推荐

  1. PHP生成有背景的二维码图片
  2. php关于日期时间的操作
  3. php策略模式和适配器模式的区别
  4. windows定时执行PHP文件
  5. ThinkPHP利用.htaccess文件的Rewrite规则
  6. PHP错误处理函数
  7. php命令行下相对路径问题的解决方法
  8. php的use和require的区别
  9. php实现简单MVC
  10. PHP数组合并之array_merge和数组相加