MPAndroiddChart的使用
效果图
代码:
package com.jiahao.me; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import com.github.mikephil.charting.charts.LineChart; 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.YAxis.YAxisLabelPosition; import com.github.mikephil.charting.data.ChartData; import com.github.mikephil.charting.data.DataSet; import com.github.mikephil.charting.data.Entry; import com.github.mikephil.charting.data.LineData; import com.github.mikephil.charting.data.LineDataSet; public class MainActivity extends Activity { private LineChart chat; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); chat = (LineChart) findViewById(R.id.chat); chat.setLogEnabled(true); chat.setBackgroundColor(Color.WHITE); chat.setDrawGridBackground(false); // 设置描述 chat.setDescription(""); // 启用 拖动 平移 chat.setDragEnabled(true); chat.setDragDecelerationEnabled(true); chat.setDrawBorders(false); // 启用或禁用绘制图表的边框 chat.setDrawBorders(false); // chat.setFitsSystemWindows(true); // 设置动画 chat.animateX(3000); // 设置滚动 chat.setScrollContainer(true); // chat.setTouchEnabled(true); chat.setTouchEnabled(true); // 设置这里进行缩放控制滚动 // chat.zoom(1.2f, 0f, 15f, 0f); chat.setPinchZoom(false); // chat.setVisibleXRangeMaximum(5); // chat.setVerticalScrollbarPosition(0); // chat.setHighlightPerDragEnabled(true); settingChat(); } private void settingChat() { // 设置X轴 XAxis xAxis = chat.getXAxis(); // 设置X轴的位置 xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); // 设置X轴启用或者禁用 xAxis.setEnabled(true); // 上面第一行代码设置了false,所以下面第一行即使设置为true也不会绘制AxisLine xAxis.setDrawAxisLine(false); xAxis.setDrawGridLines(false); xAxis.setDrawLabels(true); // 设置X轴文字的颜色 xAxis.setTextColor(Color.BLUE); xAxis.setDrawGridLines(true); xAxis.setLabelsToSkip(0); // xAxis.setAxisLineWidth(10f); // xAxis.setEnabled(true); // xAxis.setDrawGridLines(false); // 设置轴行的间距 // xAxis.setAxisLineWidth(10); // 设置右边的Y轴 YAxis yAxis = chat.getAxisRight(); // 设置右边的label不可用 yAxis.setDrawLabels(false); // 设置右边的线不可用 yAxis.setDrawGridLines(false); // 设置右边的线不可用 yAxis.setDrawAxisLine(false); YAxis leftAxis = chat.getAxisLeft(); leftAxis.setDrawAxisLine(false); leftAxis.setStartAtZero(false); // 这里进行设置 // xAxis.setEnabled(false); // leftAxis.setEnabled(true); // leftAxis.setDrawLabels(true); // leftAxis.setDrawAxisLine(true); xAxis.setEnabled(true); // xAxis.setDrawAxisLine(false); xAxis.setDrawGridLines(false); // xAxis.setAxisLineWidth(150); // 设置数据 List<Entry> yVals = new ArrayList<Entry>(); List<String> xVals = new ArrayList<String>(); xVals.add("01-01"); yVals.add(new Entry(35.5f, 0)); xVals.add("01-02"); yVals.add(new Entry(36.0f, 1)); xVals.add("01-03"); yVals.add(new Entry(36.5f, 2)); xVals.add("01-04"); yVals.add(new Entry(37.0f, 3)); xVals.add("01-05"); yVals.add(new Entry(37.5f, 4)); xVals.add("01-06"); yVals.add(new Entry(38.0f, 5)); xVals.add("01-07"); yVals.add(new Entry(38.5f, 6)); xVals.add("01-07"); yVals.add(new Entry(36.5f, 7)); xVals.add("01-07"); yVals.add(new Entry(37.5f, 8)); xVals.add("01-07"); yVals.add(new Entry(38.5f, 9)); xVals.add("01-07"); yVals.add(new Entry(35.5f, 10)); xVals.add("01-05"); yVals.add(new Entry(37.5f, 11)); xVals.add("01-06"); yVals.add(new Entry(38.0f, 12)); xVals.add("01-07"); yVals.add(new Entry(38.5f, 13)); xVals.add("01-07"); yVals.add(new Entry(36.5f, 14)); xVals.add("01-07"); yVals.add(new Entry(37.5f, 15)); xVals.add("01-07"); yVals.add(new Entry(38.5f, 16)); xVals.add("01-07"); yVals.add(new Entry(35.5f, 17)); xVals.add("01-05"); yVals.add(new Entry(37.5f, 18)); xVals.add("01-06"); yVals.add(new Entry(38.0f, 19)); xVals.add("01-07"); yVals.add(new Entry(38.5f, 20)); xVals.add("01-07"); yVals.add(new Entry(36.5f, 21)); xVals.add("01-07"); yVals.add(new Entry(37.5f, 22)); xVals.add("01-07"); yVals.add(new Entry(38.5f, 23)); xVals.add("01-07"); yVals.add(new Entry(35.5f, 24)); xVals.add("01-05"); yVals.add(new Entry(37.5f, 25)); xVals.add("01-06"); yVals.add(new Entry(38.0f, 26)); xVals.add("01-07"); yVals.add(new Entry(38.5f, 27)); xVals.add("01-07"); yVals.add(new Entry(36.5f, 28)); xVals.add("01-07"); yVals.add(new Entry(37.5f, 29)); xVals.add("01-07"); yVals.add(new Entry(38.5f, 30)); xVals.add("01-07"); yVals.add(new Entry(35.5f, 31)); xVals.add("01-05"); yVals.add(new Entry(37.5f, 32)); xVals.add("01-06"); yVals.add(new Entry(38.0f, 33)); xVals.add("01-07"); yVals.add(new Entry(38.5f, 34)); xVals.add("01-07"); yVals.add(new Entry(36.5f, 35)); xVals.add("01-07"); yVals.add(new Entry(37.5f, 36)); xVals.add("01-07"); yVals.add(new Entry(38.5f, 37)); xVals.add("01-07"); yVals.add(new Entry(35.5f, 38)); xVals.add("01-05"); yVals.add(new Entry(37.5f, 39)); xVals.add("01-06"); yVals.add(new Entry(38.0f, 40)); xVals.add("01-07"); yVals.add(new Entry(38.5f, 41)); xVals.add("01-07"); yVals.add(new Entry(36.5f, 42)); xVals.add("01-07"); yVals.add(new Entry(37.5f, 43)); xVals.add("01-07"); yVals.add(new Entry(38.5f, 44)); xVals.add("01-07"); yVals.add(new Entry(35.5f, 45)); xVals.add("01-05"); yVals.add(new Entry(37.5f, 46)); xVals.add("01-06"); yVals.add(new Entry(38.0f, 47)); xVals.add("01-07"); yVals.add(new Entry(38.5f, 48)); xVals.add("01-07"); yVals.add(new Entry(36.5f, 49)); xVals.add("01-07"); yVals.add(new Entry(37.5f, 50)); xVals.add("01-07"); yVals.add(new Entry(38.5f, 51)); xVals.add("01-07"); yVals.add(new Entry(35.5f, 52)); xVals.add("01-05"); yVals.add(new Entry(37.5f, 53)); xVals.add("01-06"); yVals.add(new Entry(38.0f, 54)); // 加上后可以解决 label显示一半的问题 // xVals.add(""); float scale = (float)(xVals.size() / 6.0); chat.zoom(scale, 0, 0, 0); // 是否绘制 Legend 下面的方块 Legend legend = chat.getLegend(); legend.setEnabled(false); LineDataSet set1 = new LineDataSet(yVals, "Content"); // set1.setDrawValues(true); // set1.setDrawFilled(true); LineData lineData = new LineData(xVals, set1); // lineData.setDrawValues(true); chat.setData(lineData); } }