MPAndroidChart 图表库

MPAndroidChart 基本使用

前言

MPAndroidChart是一个强大的Android图表加载库。支持展示折线图、柱状图、饼图、雷达图、气泡图、K线图和图表的缩放、拖拽、动画功能。

github : https://github.com/PhilJay/MPAndroidChart

文档 : https://github.com/PhilJay/MPAndroidChart/wiki

引入项目


gradle

Project中build.gradle

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

App中build.gradle

dependencies {
    implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
}

maven

<!-- <repositories> section of pom.xml -->
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>

<!-- <dependencies> section of pom.xml -->
<dependency>
<groupId>com.github.PhilJay</groupId>
<artifactId>MPAndroidChart</artifactId>
<version>v3.0.3</version>
</dependency>

布局文件中使用

图表类型

  • LineChart 折线图
  • BarChart 条形图
  • ScatterChart 散点图
  • CandleStickChart K线图
  • PieChart 饼图
  • BubbleChart 气泡图
  • RadarChart 雷达图

使用示例 - 折线图

声明在布局文件内

 <com.github.mikephil.charting.charts.LineChart
        android:id="@+id/chart"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

activityfragment中获取到控件

LineChart chart = (LineChart) findViewById(R.id.chart);

动态创建

LineChart chart = new LineChart(Context);
RelativeLayout rl = (RelativeLayout) findViewById(R.id.relativeLayout);
rl.add(chart); 

数据配置

下面示例代码将以LineChart介绍如何将元数据包装成可在图表中展示的数据

// 元数据数组
YourData[] dataObjects = ...;
// 包含每个点的X,Y轴数据的list
List<Entry> entries = new ArrayList<Entry>();
// 将元数据转换为对应图表类型的Entry数据
for (YourData data : dataObjects) {
    // 传入对应的X轴Y轴数据
    entries.add(new Entry(data.getValueX(), data.getValueY())); 
}
// LineDataSet代表一条折线,初始化时传入点的集合和该条线对应的名称,名称将显示在图例中
LineDataSet dataSet = new LineDataSet(entries, "Label"); 
// 设置折线的相关属性
dataSet.setColor(...);
dataSet.setValueTextColor(...);
// 将数据集合转为最终数据对象,可以进一步配置样式
LineData lineData = new LineData(dataSet);
// 设置数据
chart.setData(lineData);
// 刷新
chart.invalidate();

以下表格为各个图表所对应的数据类

图表类型数据对象数据集合最终数据
图表显示类型包含X轴Y轴数据的单条数据包含多条数据对象的集合,如折线图中的一条线包含数据集合的对象,可进行更进一步的配置,并设置为图表数据源
LineChartEntryLineDataSetLineData
BarChartBarEntryBarDataSetBarData
ScatterChartEntryScatterDataSetScatterData
CandleStickChartCandleEntryCandleDataSetCandleData
PieChartPieEntryPieDataSetPieData
BubbleChartBubbleEntryBubbleDataSetBubbleData
RadarChartRadarEntryRadarDataSetRadarData
Last modification:November 10th, 2018 at 08:27 am
如果觉得我的文章对你有用,请我喝杯咖啡

Leave a Comment