• Android使用MPAndroidChart 绘制折线图


    效果图:

    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在页面布局代码中添加:

    1. <com.github.mikephil.charting.charts.LineChart
    2. android:id="@+id/chart"
    3. android:layout_width="match_parent"
    4. android:layout_height="200dp"
    5. android:layout_weight="1" />

    2.2在Java文件中编写代码:

    1. private LineChart chart;
    2. @Override
    3. protected void onCreate(Bundle savedInstanceState) {
    4. super.onCreate(savedInstanceState);
    5. setContentView(R.layout.activity_devices_demo);
    6. chart = findViewById(R.id.chart);
    7. initData();
    8. }
    9. private void initData(){
    10. // 准备数据
    11. List entriesTemperature = new ArrayList<>();
    12. List entriesHumidity = new ArrayList<>();
    13. List entriesPm = new ArrayList<>();
    14. entriesTemperature.add(new Entry(0,32));
    15. entriesTemperature.add(new Entry(1,33));
    16. entriesTemperature.add(new Entry(2,28));
    17. entriesTemperature.add(new Entry(3,30));
    18. entriesTemperature.add(new Entry(4,27));
    19. entriesTemperature.add(new Entry(5,31));
    20. entriesHumidity.add(new Entry(0,52));
    21. entriesHumidity.add(new Entry(1,60));
    22. entriesHumidity.add(new Entry(2,44));
    23. entriesHumidity.add(new Entry(3,55));
    24. entriesHumidity.add(new Entry(4,70));
    25. entriesHumidity.add(new Entry(5,65));
    26. entriesPm.add(new Entry(0,25));
    27. entriesPm.add(new Entry(1,36));
    28. entriesPm.add(new Entry(2,20));
    29. entriesPm.add(new Entry(3,65));
    30. entriesPm.add(new Entry(4,43));
    31. entriesPm.add(new Entry(5,20));
    32. // 创建数据集
    33. LineDataSet temperatureDataSet = new LineDataSet(entriesTemperature, "温度(℃)");
    34. LineDataSet humidityDataSet = new LineDataSet(entriesHumidity, "湿度(%)");
    35. LineDataSet pmDataSet = new LineDataSet(entriesPm, "PM2.5(μg/m³)");
    36. // // 设置温度数据集样式
    37. temperatureDataSet.setLineWidth(2.5f); // 设置线的宽度
    38. temperatureDataSet.setColor(Color.BLUE); // 设置线的颜色
    39. temperatureDataSet.setCircleColor(Color.BLUE); // 设置数据点的颜色(可选)
    40. temperatureDataSet.setCircleRadius(4f); // 设置数据点的半径(可选)
    41. temperatureDataSet.setFillColor(Color.parseColor("#009AD1")); // 设置填充颜色(可选)
    42. temperatureDataSet.setDrawFilled(true); // 启用填充(可选)
    43. temperatureDataSet.setDrawCircles(true); // 是否显示数据点(可选)
    44. temperatureDataSet.setDrawValues(true); // 是否显示数据值(可选)
    45. temperatureDataSet.setValueTextColor(Color.WHITE); // 设置数据值文本的颜色(如果显示的话)
    46. // // 设置湿度数据集样式
    47. humidityDataSet.setLineWidth(2.5f); // 设置线的宽度
    48. humidityDataSet.setColor(Color.GREEN); // 设置线的颜色
    49. humidityDataSet.setCircleColor(Color.GREEN); // 设置数据点的颜色(可选)
    50. humidityDataSet.setCircleRadius(4f); // 设置数据点的半径(可选)
    51. humidityDataSet.setFillColor(ColorTemplate.MATERIAL_COLORS[0]); // 设置填充颜色(可选)
    52. humidityDataSet.setDrawFilled(true); // 启用填充(可选)
    53. humidityDataSet.setDrawCircles(true); // 是否显示数据点(可选)
    54. humidityDataSet.setDrawValues(true); // 是否显示数据值(可选)
    55. humidityDataSet.setValueTextColor(Color.BLACK); // 设置数据值文本的颜色(如果显示的话)
    56. // 设置PM2.5数据集样式
    57. pmDataSet.setLineWidth(2.5f); // 设置线的宽度
    58. pmDataSet.setColor(Color.YELLOW); // 设置线的颜色
    59. pmDataSet.setCircleColor(Color.YELLOW); // 设置数据点的颜色(可选)
    60. pmDataSet.setCircleRadius(4f); // 设置数据点的半径(可选)
    61. pmDataSet.setFillColor(Color.parseColor("#FFFFA0")); // 设置填充颜色(可选)
    62. pmDataSet.setDrawFilled(true); // 启用填充(可选)
    63. pmDataSet.setDrawCircles(true); // 是否显示数据点(可选)
    64. pmDataSet.setDrawValues(true); // 是否显示数据值(可选)
    65. pmDataSet.setValueTextColor(Color.BLACK); // 设置数据值文本的颜色(如果显示的话)
    66. // 创建一个LineData对象,并将数据集集合传递给它
    67. LineData data = new LineData(temperatureDataSet,humidityDataSet,pmDataSet);
    68. // 将数据设置给图表
    69. chart.setData(data);
    70. // 刷新图表以显示数据
    71. chart.invalidate();
    72. }

  • 相关阅读:
    CentOS安装Docker
    在进行自动化测试,遇到验证码的问题,怎么办?
    如何管理付费媒体预算:分配、风险与扩展
    RT-Thread学习笔记(二):RT-Thread内核
    解锁智慧照明新玩法,Construlita携手涂鸦智能打造创新方案!
    vue打开一个新窗口
    大一学生《Web编程基础》HTML实例网页代码 HTML+CSS+JS 黑色横排的个人主页作品
    HTTP详解
    [附源码]Python计算机毕业设计Django毕业生就业管理系统
    第一章:简单的C程序设计基础
  • 原文地址:https://blog.csdn.net/weixin_68443051/article/details/139881273