一、参照油管视频做法

  1.引入依赖

  新建Android工程,然后分别在build.gradle(Project:...)添加

  

maven { url 'https://jitpack.io' }

  在build.fradle(Module.app)上添加,(官方推荐)

  

implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'

  配置完成后点击AS 中File菜单的Sync Projects...或直接点击这个图标

  2.布局文件和java文件的代码

  现在打开布局文件,输入LineChart会有提示的,这说明配置成功了。

  .xml文件

 1 <?xml version="1.0" encoding="utf-8"?>
2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent">
5
6 <com.github.mikephil.charting.charts.LineChart
7 android:id="@+id/line_chart"
8 android:layout_width="match_parent"
9 android:layout_height="match_parent"/>
10
11 </RelativeLayout>

  .java文件

 1 package com.example.learnmpandchart;
2
3 import androidx.appcompat.app.AppCompatActivity;
4
5 import android.os.Bundle;
6
7 import com.github.mikephil.charting.charts.LineChart;
8 import com.github.mikephil.charting.data.Entry;
9 import com.github.mikephil.charting.data.LineData;
10 import com.github.mikephil.charting.data.LineDataSet;
11 import com.github.mikephil.charting.interfaces.datasets.ILineDataSet;
12
13 import java.util.ArrayList;
14 import java.util.Map;
15
16 public class MainActivity extends AppCompatActivity {
17
18 LineChart mpLineChart;
19
20 @Override
21 protected void onCreate(Bundle savedInstanceState) {
22 super.onCreate(savedInstanceState);
23 setContentView(R.layout.activity_main);
24
25 mpLineChart = (LineChart) findViewById(R.id.line_chart);//找到折线图控件
26 LineDataSet lineDataSet1 = new LineDataSet(dataValues1(),"Data Set 1");
27 ArrayList<ILineDataSet> dataSets = new ArrayList<>();
28 dataSets.add(lineDataSet1);
29
30 LineData data = new LineData(dataSets);
31 mpLineChart.setData(data);
32 mpLineChart.invalidate();
33 }
34
35 private ArrayList<Entry> dataValues1() {
36 ArrayList<Entry> dataVals = new ArrayList<Entry>();
37 dataVals.add(new Entry(0,20));
38 dataVals.add(new Entry(1,24));
39 dataVals.add(new Entry(2,2));
40 dataVals.add(new Entry(3,10));
41 dataVals.add(new Entry(4,28));
42
43 return dataVals;
44 }
45 }

点击运行后就完成了。

  

  (以上步骤全参考至油管视频,链接如下)

  油管上教程https://www.youtube.com/playlist?list=PLFh8wpMiEi89LcBupeftmAcgDKCeC24bJ

二、官方文档介绍方法

  在LineChart章节中,官方的列子是这样的(机翻)例如,您可能希望在一个线型图中显示两家不同公司在一年内的季度收入。在这种情况下,建议创建两个不同的LineDataSet对象,每个对象包含四个值(每个季度一个值)。

    

  附上代码.java文件

 1 package com.example.learnmpandchart;
2
3 import androidx.appcompat.app.AppCompatActivity;
4
5 import android.os.Bundle;
6
7 import com.github.mikephil.charting.charts.LineChart;
8 import com.github.mikephil.charting.components.AxisBase;
9 import com.github.mikephil.charting.components.XAxis;
10 import com.github.mikephil.charting.components.YAxis;
11 import com.github.mikephil.charting.data.Entry;
12 import com.github.mikephil.charting.data.LineData;
13 import com.github.mikephil.charting.data.LineDataSet;
14 import com.github.mikephil.charting.formatter.ValueFormatter;
15 import com.github.mikephil.charting.interfaces.datasets.ILineDataSet;
16
17 import java.util.ArrayList;
18 import java.util.List;
19
20 public class MainActivity2 extends AppCompatActivity {
21
22 LineChart mplinechart2;//布局文件折线图的名字
23 List<Entry> valsComp1 = new ArrayList<Entry>();//创建类型为Entry的列表保存公司1的数值
24 List<Entry> valsComp2 = new ArrayList<Entry>();//公司2的数值
25
26 @Override
27 protected void onCreate(Bundle savedInstanceState) {
28 super.onCreate(savedInstanceState);
29 setContentView(R.layout.activity_main2);
30
31 mplinechart2 = (LineChart) findViewById(R.id.line_chart2);//找到折线图
32
33 //公司1的5个数据点,x横坐标,y纵坐标
34 Entry c1el = new Entry(0f,100000f);
35 valsComp1.add(c1el);
36 Entry c1e2 = new Entry(1f,120000f);
37 valsComp1.add(c1e2);
38 Entry c1e3 = new Entry(2f,140000f);
39 valsComp1.add(c1e3);
40 Entry c1e4 = new Entry(3f,160000f);
41 valsComp1.add(c1e4);
42 Entry c1e5 = new Entry(4f,180000f);
43 valsComp1.add(c1e5);
44
45 //公司2的5个数据点
46 Entry c2e1 = new Entry(0f,200000f);
47 valsComp2.add(c2e1);
48 Entry c2e2 = new Entry(1f,220000f);
49 valsComp2.add(c2e2);
50 Entry c2e3 = new Entry(2f,240000f);
51 valsComp2.add(c2e3);
52 Entry c2e4 = new Entry(3f,260000f);
53 valsComp2.add(c2e4);
54 Entry c2e5 = new Entry(4f,280000f);
55 valsComp2.add(c2e5);
56
57 //创建LineDataSet对象
58 LineDataSet setComp1 = new LineDataSet(valsComp1,"Company 1");
59 setComp1.setAxisDependency(YAxis.AxisDependency.LEFT);
60 LineDataSet setComp2 = new LineDataSet(valsComp2,"Company2");
61 setComp2.setAxisDependency(YAxis.AxisDependency.LEFT);
62
63 //使用接口ILineDataSet
64 List<ILineDataSet> dataSets = new ArrayList<ILineDataSet>();
65 dataSets.add(setComp1);
66 dataSets.add(setComp2);
67
68 LineData data = new LineData(dataSets);
69 mplinechart2.setData(data);//将数据塞入折线图中
70 mplinechart2.invalidate();//刷新,不刷新显示不出来
71
72 //设置x轴坐标的名称,Q表示4个不同的季度
73 final String[] quarters = new String[] {"Q1","Q2","Q3","Q4","Q1"};
74
75 //通过ValueFormatter类添加更多关于x轴的描述
76 ValueFormatter formatter = new ValueFormatter() {
77 @Override
78 public String getAxisLabel(float value, AxisBase axis) {
79 return quarters[(int) value];
80 }
81 };
82
83 XAxis xAxis = mplinechart2.getXAxis();
84 xAxis.setGranularity(1f);//最小轴步,从1开始
85 xAxis.setValueFormatter(formatter);
86 }
87 }

  .xml文件

 1 <?xml version="1.0" encoding="utf-8"?>
2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent">
5
6 <com.github.mikephil.charting.charts.LineChart
7 android:id="@+id/line_chart2"
8 android:layout_width="match_parent"
9 android:layout_height="match_parent"/>
10
11 </RelativeLayout>

  第二步骤全部参考至,官方文档https://weeklycoding.com/mpandroidchart-documentation/

17:09:04

最新文章

  1. Gamma函数是如何被发现的?
  2. C#对象比较
  3. Mysql undo与redo Log
  4. 2014-2015 ACM-ICPC, NEERC, Moscow Subregional Contest F. Friends
  5. [CareerCup] 13.3 Virtual Functions 虚函数
  6. SAX解析XML
  7. 理解Php中的Static
  8. 14.4.4 Configuring the Memory Allocator for InnoDB InnoDB 配置内存分配器
  9. Linux源文件夹结构呈现
  10. 【转】c++ 获取程序运行时间
  11. Beta敏捷冲刺每日报告——Day1
  12. python中os.path.dirname(__file__) 命令行 参数没有绝对路径导致数据库找不到
  13. Java实现堆排序和计数排序
  14. 设置navigation的title
  15. C# 监听HTTP请求
  16. Mysql事件监控日志
  17. opencv 线,椭圆 圆
  18. hdu 5072 两两(不)互质个数逆向+容斥
  19. ant jmeter 优化报告
  20. 使用级联分类器实现人脸检测(OpenCV自带的数据)

热门文章

  1. checkAll操作
  2. 2020 CCPC-Wannafly Winter Camp Day2
  3. 2288.【POJ Challenge】生日礼物 链表+堆+贪心
  4. 【uva 11572】Unique Snowflakes(算法效率--滑动窗口,3种实现方法)
  5. poj2443Set Operation (bitset)
  6. Baby-step giant-step算法
  7. POJ1142 Smith Numbers 暴力+分解质因子
  8. 关于HashMap遍历,为什么要用entry
  9. STM32 单片机的USART的奇偶校验 误区(坑)
  10. Python+OpenCV+图片旋转并用原底色填充新四角