一、参照油管视频做法

  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

MPAndroidChart实现LineChart(折线图)的更多相关文章

  1. MPAndroidChart 3.0——LineChart(折线图)

    显示效果 MPAndroidChart每一种图表的基本使用方式都基本相同 了解一种图表的实现 参考项目源码其他的图表也就差不多哩 在布局文件中定义 <com.github.mikephil.ch ...

  2. echarts 中 柱图 、折线图、柱图层叠

    app.title = '折柱混合'; option = { tooltip: { trigger: 'axis', axisPointer: { type: 'cross', crossStyle: ...

  3. Android 使用 MPAndroidChart 实现折线图

    Android 使用 MPAndroidChart 实现折线图 做Android项目的时候用到了折线图,不光折线图,还可能遇到很多的图表需要展示渲染,自己手画的话那好玩了,今天使用MPAndroidC ...

  4. Swift - LineChart绘制折线图

    LineChart,就使用Core Graphics和QuartzCore框架中的CAShapeLayer绘制.这样执行效率明显比堆砌UIView的方法效率高--占用资源少,执行快. 看看CALaye ...

  5. Android图表库MPAndroidChart(八)——饼状图的扩展:折线饼状图

    Android图表库MPAndroidChart(八)--饼状图的扩展:折线饼状图 我们接着上文,饼状图的扩展,增加折现的说明,来看下我们要实现的效果 因为之前对MPAndroidChart的熟悉,所 ...

  6. MPAndroidChart开源图表库---折线图

    项目地址:点击打开,原文参考地址:点击打开 1. 将mpandroidchartlibrary-2-0-8.jar包copy到项目的libs中 2. 定义xml文件 <?xml version= ...

  7. 最牛逼android上的图表库MpChart(二) 折线图

    最牛逼android上的图表库MpChart二 折线图 MpChart折线图介绍 MpChart折线图实例 MpChart效果 最牛逼android上的图表库MpChart(二) 折线图 最近工作中, ...

  8. 手把手教你实现折线图之------安卓最好用的图表库hellocharts之最详细的使用介绍

    因为项目需要搞一个折线图,按照日期显示相应的成绩,所以有了本文. 以前用过一次XCL-chart,但是感觉只适合固定图表,不去滑动的那种,因为你一滑动太卡了你懂得(毕竟作者好久没更新优化了),拙言大神 ...

  9. swift app中展示折线图, 饼状图, 柱状图等数据图表

    github 下载Charts-master SDK,该SDK有多种可自定义的图表样式 lineChart 正弦余弦线图 LineChart (cubic lines) LineChart (grad ...

随机推荐

  1. MacOS Big Sur开HiDPI

    我自己的环境: 开启hidpi的目的是为了让显示更加细腻,代价是缩小了显示范围. 自己在网上看了很多帖子,也尝试了几种,有些方法已经不再适合Big Sur系统了,所以本文提供一种可用的,在Big Su ...

  2. XV6学习(12)Lab lock: Parallelism/locking

    代码在github上 这一次实验是要对XV6内部的锁进行优化,减少锁争用,提高系统的性能. Memory allocator (moderate) 第一个实验是对XV6内核的内存页面分配器进行改进,改 ...

  3. Codeforces Round #653 (Div. 3)

    比赛链接:https://codeforces.com/contest/1374 A. Required Remainder 题意 给出 $x, y, n$,找到最大的整数 $0 \le k \le ...

  4. 数组复制函数memcpy和strcpy

    strcpy和memcpy主要有以下3方面的区别.1.复制的内容不同.strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组.整型.结构体.类等.2.复制的方法不同.strcpy不需 ...

  5. hdu3577 Fast Arrangement

    Problem Description Chinese always have the railway tickets problem because of its' huge amount of p ...

  6. [CodeForces-629A 用阶乘会爆掉

    题意: 给你一个n*n的蛋糕,如果某个位置是'C'那就代表这是一个巧克力块,否则就不是.如果某两个巧克力块在同一行或同一列,那么这个家庭的幸福值就会加1,问你这个家庭的幸福值最大是多少 Input 3 ...

  7. Tomacat目录以及服务器配置文件信息

    一. 1.Tomacat的启动: 在我的windows10中我下载的是8.5版本的tomacat,我就是通过".sh"文件来打开和关闭tomacat 要打开.sh文件还需要 这个G ...

  8. C# 之 async / await

    直接看一个例子 private async void button1_Click(object sender, EventArgs e) { var t = Task.Run(() => { T ...

  9. OpenStack Train版-7.neutron网络服务概述

    网络服务NEUTRON概述 一.NEUTRON架构 OpenStack的网络服务neutron是整个OpenStack中最复杂的一个部分,它的基本架构是一个中心服务(neutron-server)外加 ...

  10. 爬虫入门一 基础知识 以及request

    title: 爬虫入门一 基础知识 以及request date: 2020-03-05 14:43:00 categories: python tags: crawler 爬虫整体概述,基础知识. ...