80,359
社区成员
发帖
与我相关
我的任务
分享
package com.example.textchart;
import android.R.color;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.graphics.Color;
import java.util.ArrayList;
import com.github.mikephil.charting.charts.BarChart;
import com.github.mikephil.charting.components.LimitLine;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.components.YAxis;
import com.github.mikephil.charting.components.XAxis.XAxisPosition;
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.data.LineDataSet;
import com.github.mikephil.charting.utils.ColorTemplate;
import com.example.textchart.R;
import android.os.Bundle;
public class MainActivity extends Activity {
public BarChart barChart;
public ArrayList<BarEntry> entries = new ArrayList<BarEntry>(); //(x,y1)
public ArrayList<BarEntry> entries2 = new ArrayList<BarEntry>();//(x,y2)
public ArrayList<BarEntry> entries3= new ArrayList<BarEntry>();//(x,y3)
public BarDataSet dataset ,dataset2,dataset3;
private XAxis xAxis; //X坐标轴
private YAxis yAxis; //Y
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
barChart = (BarChart) findViewById(R.id.spread_line_chart);
xAxis = barChart.getXAxis();
xAxis.setPosition(XAxisPosition.BOTTOM);//X轴在下边
yAxis = barChart.getAxisLeft();
xAxis.setDrawGridLines(false);//不要竖线网格
yAxis.setStartAtZero(false);//不一定从0坐标开始
barChart.getAxisRight().setEnabled(false); // 隐藏右边 的坐标轴
xAxis.setAvoidFirstLastClipping(false);
/*
* barChart.zoom(1.0f,1.0f,0f,0f); 开始时放大倍数(x轴,y轴,起点(x,y)),
(1.0f,1.0f,0f,0f)(0,0)点开始,放大1倍(原始大小),如果数据太多,不放大会很密集,
可以根据数据多少动态计算放大倍数,如下(最多显示5条,可滑动或缩放查看全部)
int n = (int) Math.ceil(MainActivity.measurements.size()/5.0);
if(n==0){
barChart.zoom(1.0f,1.0f,0f,0f);
}else{
barChart.zoom((float)n,1.0f,0f,0f);
}
*
*/
barChart.zoom(3.0f,1.0f,0f,0f);
initEntriesData(); //添加Y轴数据
show();
}
public void initEntriesData() {
entries.add(new BarEntry(4f, 0));
entries.add(new BarEntry(8f, 1));
entries.add(new BarEntry(6f, 2));
entries.add(new BarEntry(12f, 3));
entries.add(new BarEntry(18f, 4));
entries.add(new BarEntry(9f, 5));
entries.add(new BarEntry(4f, 6));
entries.add(new BarEntry(8f, 7));
entries.add(new BarEntry(6f, 8));
entries.add(new BarEntry(12f, 9));
entries.add(new BarEntry(18f, 10));
entries.add(new BarEntry(9f, 11));
entries2.add(new BarEntry(5f, 0));
entries2.add(new BarEntry(6f, 1));
entries2.add(new BarEntry(7f, 2));
entries2.add(new BarEntry(5f, 3));
entries2.add(new BarEntry(13f, 4));
entries2.add(new BarEntry(12f, 5));
entries2.add(new BarEntry(5f, 6));
entries2.add(new BarEntry(6f, 7));
entries2.add(new BarEntry(7f, 8));
entries2.add(new BarEntry(5f, 9));
entries2.add(new BarEntry(13f, 10));
entries2.add(new BarEntry(12f, 11));
entries3.add(new BarEntry(8f, 0));
entries3.add(new BarEntry(4f, 1));
entries3.add(new BarEntry(15f, 2));
entries3.add(new BarEntry(12f, 3));
entries3.add(new BarEntry(12f, 4));
entries3.add(new BarEntry(1f, 5));
entries3.add(new BarEntry(8f, 6));
entries3.add(new BarEntry(4f, 7));
entries3.add(new BarEntry(15f, 8));
entries3.add(new BarEntry(12f, 9));
entries3.add(new BarEntry(12f, 10));
entries3.add(new BarEntry(1f, 11));
}
public void show() {
dataset = new BarDataSet(entries, "甲");
dataset.setColor(Color.rgb(255, 48, 48));
dataset2 = new BarDataSet(entries2, "乙");
dataset2.setColor(Color.rgb(0, 191, 255));
dataset3 = new BarDataSet(entries3, "丙");
dataset3.setColor(Color.rgb(255, 215, 0));
ArrayList<BarDataSet> dataSets = new ArrayList<BarDataSet>(); //坐标线的集合。
dataSets.add(dataset);
dataSets.add(dataset2);
dataSets.add(dataset3);
ArrayList<String> xVals = new ArrayList<String>(); //x轴坐标
for(int i = 1;i<13;i++){
xVals.add("第"+i+"次");
}
BarData data3 = new BarData(xVals, dataSets);
barChart.setData(data3);
barChart.animateY(2000);//动画效果 y轴方向,2秒
// chart.animateXY(5000,5000); //动画效果 xy轴方向,5秒
barChart.setDescription("某某某数据直方图");
}
}