java android统计图-ag凯发k8国际
android统计图表之柱状图(条形图)
柱状图是统计图表中经常用到的一种图表,比如降雨量之类的统计展示。我之前写了一些关于android上的统计图表库mpandroidchart,附录了一些我自己写的技术文档,在这些文档中介绍了mpandroidchart的详细内容。
现在基于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 {
@override
protected 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 xvals = new arraylist();
for (int i = 0; i < count; i ) {
xvals.add(i, i "");
}
arraylist yvals = new arraylist();
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() {
@override
public string getformattedvalue(float value) {
decimalformat decimalformat = new decimalformat(".0");
string s = decimalformat.format(value) "毫米";
return s;
}
});
arraylist datasets = new arraylist();
datasets.add(mbardataset);
bardata mbardata = new bardata(xvals, datasets);
mbardata.setvaluetextsize(12f);
mbarchart.setdata(mbardata);
}
}
mainactivity.java需要的布局文件activity_main.xml:
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
android:id="@ id/bar_chart"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
运行结果如图:
总结
以上是ag凯发k8国际为你收集整理的java android统计图_android统计图表之柱状图(条形图)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇:
- 下一篇: java自定义配置文件xml_sprin