图表MPAndroidChart3.0
一、继承配置
1.在项目的build.gradle中的allprojects配置如下
allprojects {
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' }
}
}
2.在app的build.gradle中dependencies添加依赖
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.2'
二、图表整体的配置
下面以LineChart控件为例
1.是否显示图表的描述:
mLineChart.getDescription.setEnabled(false)
2.是否能够拖拽:
mLineChart.setDragEnabled(false)
3.是否能够缩放:
mLineChart.setScaleEnabled(false)
4.无数据时显示的文案:
mLineChart.setNoDataText("暂无数据")
5.绘线动画时间:
mLineChart.animateXY(2000, 2000)
6.是否显示边界:
mLineChart.setDrawBorders(false)
还有些不常见的,真有需要再点点看或者查官方文档
三、XAxis(X轴)
1.获取X轴
XAxis xAxis = mLineChart.getXAxis();
2.设置X轴的位置
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
3.设置X轴最小值
xAxis.setAxisMinimum(0f);
4.设置X轴最大值
xAxis.setAxisMaximum(20f);
设置了3.4.之后,x轴会根据设置的刻度数量自动分配刻度显示。
但一般都是由个人指定X轴的值显示什么的
5.自定义设置X轴的值
xAxis.setValueFormatter(new IAxisValueFormatter() {
@Override
public String getFormattedValue(float value, AxisBase axis) {
return mList.get((int) value); //mList为存有你要的X轴值的集合
}
});
注:value也有可能不是0,1,2,3,而有可能是-0.5,0.5909091,1.6818182等等。如果不是你想要的,记得去换算,或者你设置得有问题
比如说你设置了xAxis.setCenterAxisLabels
for (int i = 0; i < 12; i++) {
entries.add(new Entry(i, "hello world");
}
6.设置X轴显示多少个
xAxis.setLabelCount(12, true); true为强制显示12个,如果不是可以少于12个,但不能大于12个
四、YAxis(Y轴)
1.获取Y轴
YAxis leftYAxis = mLineChart.getAxisLeft();
YAxis rightYAxis = mLineChart.getAxisRight();
2.隐藏Y轴
rightYAxis.setEnabled(false); //右侧Y轴不显示
3.设置Y轴值
leftYAxis.setAxisMinimum(0f);
leftYAxis.setAxisMaximum(100f);
或者
这个可以设置你要的值,但一般Y轴设置最大值和最小值即可,由它自由分配刻度
leftYAxis.setValueFormatter(new IAxisValueFormatter() {
@Override
public String getFormattedValue(float value, AxisBase axis) {
return (int) value + "%";
}
});
其他的一些属性和X轴一样
五、图例
1.获取图例
Legend legend = mLineChart.getLegend()
2.设置标签是否换行(标签过多时)
legend.setWordWrapEnabled(true);
六、设置数据
//设置数据
List<Entry> entries = new ArrayList<>();
for (int i = 0; i < 10; i++) {
entries.add(new Entry(i, xxx);
}
//一个LineDataSet就是一条线
LineDataSet lineDataSet = new LineDataSet(entries, "示例");
LineData data = new LineData(lineDataSet);
mLineChart.setData(data);
上面的xxx就是一点点的数值
网友评论