效果图:
1.导入依赖
1.1在项目根目录下的build.gradle文件中添加代码(注意不是app下的build.gradle):
maven { url 'https://jitpack.io' }
1.2在app下的build.gradle中的依赖下添加:
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
(添加后记得同步)
2.编写代码
2.1在页面布局代码中添加:
<com.github.mikephil.charting.charts.LineChart
android:id="@+id/chart"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_weight="1" />
2.2在Java文件中编写代码:
private LineChart chart;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_devices_demo);
chart = findViewById(R.id.chart);
initData();
}
private void initData(){
// 准备数据
List<Entry> entriesTemperature = new ArrayList<>();
List<Entry> entriesHumidity = new ArrayList<>();
List<Entry> entriesPm = new ArrayList<>();
entriesTemperature.add(new Entry(0,32));
entriesTemperature.add(new Entry(1,33));
entriesTemperature.add(new Entry(2,28));
entriesTemperature.add(new Entry(3,30));
entriesTemperature.add(new Entry(4,27));
entriesTemperature.add(new Entry(5,31));
entriesHumidity.add(new Entry(0,52));
entriesHumidity.add(new Entry(1,60));
entriesHumidity.add(new Entry(2,44));
entriesHumidity.add(new Entry(3,55));
entriesHumidity.add(new Entry(4,70));
entriesHumidity.add(new Entry(5,65));
entriesPm.add(new Entry(0,25));
entriesPm.add(new Entry(1,36));
entriesPm.add(new Entry(2,20));
entriesPm.add(new Entry(3,65));
entriesPm.add(new Entry(4,43));
entriesPm.add(new Entry(5,20));
// 创建数据集
LineDataSet temperatureDataSet = new LineDataSet(entriesTemperature, "温度(℃)");
LineDataSet humidityDataSet = new LineDataSet(entriesHumidity, "湿度(%)");
LineDataSet pmDataSet = new LineDataSet(entriesPm, "PM2.5(μg/m³)");
// // 设置温度数据集样式
temperatureDataSet.setLineWidth(2.5f); // 设置线的宽度
temperatureDataSet.setColor(Color.BLUE); // 设置线的颜色
temperatureDataSet.setCircleColor(Color.BLUE); // 设置数据点的颜色(可选)
temperatureDataSet.setCircleRadius(4f); // 设置数据点的半径(可选)
temperatureDataSet.setFillColor(Color.parseColor("#009AD1")); // 设置填充颜色(可选)
temperatureDataSet.setDrawFilled(true); // 启用填充(可选)
temperatureDataSet.setDrawCircles(true); // 是否显示数据点(可选)
temperatureDataSet.setDrawValues(true); // 是否显示数据值(可选)
temperatureDataSet.setValueTextColor(Color.WHITE); // 设置数据值文本的颜色(如果显示的话)
// // 设置湿度数据集样式
humidityDataSet.setLineWidth(2.5f); // 设置线的宽度
humidityDataSet.setColor(Color.GREEN); // 设置线的颜色
humidityDataSet.setCircleColor(Color.GREEN); // 设置数据点的颜色(可选)
humidityDataSet.setCircleRadius(4f); // 设置数据点的半径(可选)
humidityDataSet.setFillColor(ColorTemplate.MATERIAL_COLORS[0]); // 设置填充颜色(可选)
humidityDataSet.setDrawFilled(true); // 启用填充(可选)
humidityDataSet.setDrawCircles(true); // 是否显示数据点(可选)
humidityDataSet.setDrawValues(true); // 是否显示数据值(可选)
humidityDataSet.setValueTextColor(Color.BLACK); // 设置数据值文本的颜色(如果显示的话)
// 设置PM2.5数据集样式
pmDataSet.setLineWidth(2.5f); // 设置线的宽度
pmDataSet.setColor(Color.YELLOW); // 设置线的颜色
pmDataSet.setCircleColor(Color.YELLOW); // 设置数据点的颜色(可选)
pmDataSet.setCircleRadius(4f); // 设置数据点的半径(可选)
pmDataSet.setFillColor(Color.parseColor("#FFFFA0")); // 设置填充颜色(可选)
pmDataSet.setDrawFilled(true); // 启用填充(可选)
pmDataSet.setDrawCircles(true); // 是否显示数据点(可选)
pmDataSet.setDrawValues(true); // 是否显示数据值(可选)
pmDataSet.setValueTextColor(Color.BLACK); // 设置数据值文本的颜色(如果显示的话)
// 创建一个LineData对象,并将数据集集合传递给它
LineData data = new LineData(temperatureDataSet,humidityDataSet,pmDataSet);
// 将数据设置给图表
chart.setData(data);
// 刷新图表以显示数据
chart.invalidate();
}