MPchart使用详解及详细属性 admin 2023-02-13 12:18:02 篇首语:本文由小编为大家整理,主要介绍了MPchart使用详解及详细属性相关的知识,希望对你有一定的参考价值。 项目源代码:https://github.com/libin7278/MpChart 第一步 添加依赖或导入Library dependencies compile fileTree(dir: "libs", include: ["*.jar"]) compile "com.android.support:appcompat-v7:23.2.0" compile "com.github.PhilJay:MPAndroidChart:v2.2.3" github:https://github.com/PhilJay/MPAndroidChart 第二步 布局文件 第三步 MainActivity代码 package com.tunshu.mydemo;import android.app.Activity;import android.os.Bundle;import com.github.mikephil.charting.charts.BarChart;import com.github.mikephil.charting.data.BarData;import com.github.mikephil.charting.data.BarDataSet;import com.github.mikephil.charting.data.BarEntry;import java.util.ArrayList;public class MainActivity extends Activity private BarChart day_fragment_bar_chart; private BarData mBarData; @Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); day_fragment_bar_chart= (BarChart) findViewById(R.id.day_fragment_bar_chart);//getBarData(X轴坐标个数, X所对应的值也就是Y值) mBarData = getBarData(24, 10); showBarChart(day_fragment_bar_chart, mBarData); /** *用来处理视图的方法 */ private void showBarChart(BarChart barChart, BarData barData) /** *用来处理数据的方法 */ private BarData getBarData(int count, float range) ArrayList xValues = new ArrayList(); for (int i = 0; i < count; i++) xValues.add(i + ""); ArrayList yValues = new ArrayList(); for (int i = 0; i < count; i++) float value = (float) (Math.random() * range/*100以内的随机数*/) + 3; yValues.add(new BarEntry(value, i)); // y轴的数据集合 BarDataSet barDataSet = new BarDataSet(yValues, "collection"); ArrayList barDataSets = new ArrayList(); barDataSets.add(barDataSet); // add the datasets BarData barData = new BarData(xValues, barDataSet); return barData; 在MainActivity中已经封装好了处理数据和视图的方法; 第四步 详细属性介绍 private void showBarChart(BarChart barChart, BarData barData) // 如果没有数据的时候,会显示这个,类似ListView的EmptyView barChart.setNoDataTextDescription("You need to provide data for the chart."); private void showBarChart(BarChart barChart, BarData barData) barChart.setData(barData); // 设置数据 barChart.setDrawBorders(true); //是否在折线图上添加边框 barChart.setDescription("数据描述");// 数据描述barChart.setDescriptionPosition(100,20);//数据描述的位置barChart.setDescriptionColor(Color.GRAY);//数据的颜色barChart.setDescriptionTextSize(40);//数据字体大小 如果此处不想要描述必须要设置 barChart.setDescription("");不然会显示默认的 Description。 barChart.setDrawGridBackground(true); // 是否显示表格颜色barChart.setGridBackgroundColor(Color.RED); // 表格的的颜色 barChart.setTouchEnabled(false); // 设置是否可以触摸barChart.setDragEnabled(false);// 是否可以拖拽barChart.setScaleEnabled(false);// 是否可以缩放barChart.setPinchZoom(false);//y轴的值是否跟随图表变换缩放;如果禁止,y轴的值会跟随图表变换缩放 barChart.setBackgroundColor(Color.BLACK);// 设置整个图表控件的背景 barChart.setDrawBarShadow(true);//柱状图没有数据的部分是否显示阴影效果 barChart.setDrawValueAboveBar(false);//柱状图上面的数值是否在柱子上面 //是否显示竖直标尺线barChart.getXAxis().setDrawGridLines(false); //设置横坐标显示的间隔数barChart.getXAxis().setLabelsToSkip(4); //设置横坐标倾斜角度barChart.getXAxis().setLabelRotationAngle(20); //设置横坐标之间的间隔距离 float值 //不能与setLabelsToSkip()一起使用否则失效barChart.getXAxis().setSpaceBetweenLabels(50); //是否显示X轴数值//默认是truebarChart.getXAxis().setDrawLabels(false); //右侧是否显示Y轴数值barChart.getAxisRight().setDrawLabels(false); //是否显示最右侧竖线barChart.getAxisRight().setEnabled(false); //自定义Y轴文字样式YAxisValueFormatter custom = new MyYAxisValueFormatter();baChart.getAxisLeft().setValueFormatter(custom); public class MyYAxisValueFormatter implements YAxisValueFormatter private DecimalFormat mFormat; public MyYAxisValueFormatter() mFormat = new DecimalFormat("###,###,###,##0"); @Override public String getFormattedValue(float value, YAxis yAxis) return mFormat.format(value) + "K"; //设置比例图标的位置 barChart.getLegend().setPosition(Legend.LegendPosition.RIGHT_OF_CHART);//设置比例图标和文字之间的位置方向barChart.getLegend().setDirection(Legend.LegendDirection.RIGHT_TO_LEFT);barChart.getLegend().setTextColor(Color.RED); //设置动画barChart.animateXY(2000,3000); // y轴的数据集合BarDataSet barDataSet = new BarDataSet(yValues, "collection"); barDataSet.setBarSpacePercent(80);barDataSet.setVisible(true);//是否显示柱状图柱子barDataSet.setColor(Color.RED);//设置柱子颜色barDataSet.setDrawValues(false);//是否显示柱子上面的数值 package com.tunshu.mydemo;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import com.github.mikephil.charting.charts.BarChart;import com.github.mikephil.charting.components.Legend;import com.github.mikephil.charting.components.XAxis;import com.github.mikephil.charting.components.YAxis;import com.github.mikephil.charting.data.BarData;import com.github.mikephil.charting.data.BarDataSet;import com.github.mikephil.charting.data.BarEntry;import com.github.mikephil.charting.formatter.YAxisValueFormatter;import java.text.DecimalFormat;import java.util.ArrayList;public class MainActivity extends Activity private BarChart day_fragment_bar_chart; private BarData mBarData; @Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); day_fragment_bar_chart= (BarChart) findViewById(R.id.day_fragment_bar_chart); mBarData = getBarData(24, 10); showBarChart(day_fragment_bar_chart, mBarData); private void showBarChart(BarChart barChart, BarData barData) // 如果没有数据的时候,会显示这个,类似ListView的EmptyView barChart.setNoDataTextDescription("You need to provide data for the chart."); barChart.setData(barData); // 设置数据 barChart.setDrawBorders(false); //是否在折线图上添加边框 barChart.setDescription("数据描述");// 数据描述 barChart.setDescriptionPosition(100,20);//数据描述的位置 barChart.setDescriptionColor(Color.RED);//数据的颜色 barChart.setDescriptionTextSize(40);//数据字体大小 barChart.setDrawGridBackground(false); // 是否显示表格颜色 barChart.setGridBackgroundColor(Color.RED); // 表格的的颜色 //barChart.setBackgroundColor(Color.BLACK);// 设置整个图标控件的背景 barChart.setDrawBarShadow(false);//柱状图没有数据的部分是否显示阴影效果 barChart.setTouchEnabled(false); // 设置是否可以触摸 barChart.setDragEnabled(false);// 是否可以拖拽 barChart.setScaleEnabled(false);// 是否可以缩放 barChart.setPinchZoom(false);//y轴的值是否跟随图表变换缩放;如果禁止,y轴的值会跟随图表变换缩放 barChart.setDrawValueAboveBar(true);//柱状图上面的数值显示在柱子上面还是柱子里面 barChart.getXAxis().setDrawGridLines(false);//是否显示竖直标尺线 barChart.getXAxis().setLabelsToSkip(11);//设置横坐标显示的间隔// barChart.getXAxis().setLabelRotationAngle(20);//设置横坐标倾斜角度// barChart.getXAxis().setSpaceBetweenLabels(50); barChart.getXAxis().setDrawLabels(true);//是否显示X轴数值 barChart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);//设置X轴的位置 默认在上方 barChart.getAxisRight().setDrawLabels(false);//右侧是否显示Y轴数值 barChart.getAxisRight().setEnabled(false);//是否显示最右侧竖线 barChart.getAxisRight().setDrawAxisLine(true); barChart.getAxisLeft().setDrawAxisLine(false); barChart.getXAxis().setDrawAxisLine(true); YAxisValueFormatter custom = new MyYAxisValueFormatter();//自定义Y轴文字样式 barChart.getAxisLeft().setValueFormatter(custom); barChart.getLegend().setPosition(Legend.LegendPosition.RIGHT_OF_CHART);//设置比例图标的位置 barChart.getLegend().setDirection(Legend.LegendDirection.RIGHT_TO_LEFT);//设置比例图标和文字之间的位置方向 barChart.getLegend().setTextColor(Color.RED); barChart.animateXY(2000,3000); private BarData getBarData(int count, float range) ArrayList xValues = new ArrayList(); for (int i = 0; i < count; i++) xValues.add(i + ""); ArrayList yValues = new ArrayList(); for (int i = 0; i < count; i++) float value = (float) (Math.random() * range/*100以内的随机数*/) + 3; yValues.add(new BarEntry(value, i)); // y轴的数据集合 BarDataSet barDataSet = new BarDataSet(yValues, "collection"); barDataSet.setBarSpacePercent(80); barDataSet.setVisible(true);//是否显示柱状图柱子 barDataSet.setColor(Color.RED);//设置柱子颜色 barDataSet.setDrawValues(false);//是否显示柱子上面的数值 ArrayList barDataSets = new ArrayList(); barDataSets.add(barDataSet); // add the datasets BarData barData = new BarData(xValues, barDataSet); return barData; public class MyYAxisValueFormatter implements YAxisValueFormatter private DecimalFormat mFormat; public MyYAxisValueFormatter() mFormat = new DecimalFormat("###,###,###,##0"); @Override public String getFormattedValue(float value, YAxis yAxis) return mFormat.format(value) + "K"; //设置Y轴显示数量barChart.getAxisLeft().setLabelCount(2,false); 扫码关注公众号“伟大程序猿的诞生“,更多干货新鲜文章等着你~ 公众号回复“资料获取”,获取更多干货哦~ 有问题添加本人微信号“fenghuokeji996” 或扫描博客导航栏本人二维码 以上是关于MPchart使用详解及详细属性的主要内容,如果未能解决你的问题,请参考以下文章 Android MediaCodec+OpenGL视频编解码实践笔记 php 获取数组第一个key 第一个键值对 等等 您可能还会对下面的文章感兴趣: 相关文章 浏览器打不开网址提示“ERR_CONNECTION_TIMED_OUT”错误代码的解决方法 如何安装ocx控件 VMware的虚拟机为啥ip地址老是自动变化 vbyone和EDP区别 linux/debian到底怎么重启和关机 苹果平板键盘被弄到上方去了,如何调回正常? 机器学习常用距离度量 如何查看kindle型号