MPAndroidChart的一些问题解决方法

来源:互联网 发布:苹果手机商城软件 编辑:程序博客网 时间:2024/04/29 17:06

MPAndroidChart是一款基于Android的开源图表库,MPAndroidChart不仅可以在Android设备上绘制各种统计图表,而且可以对图表进行拖动和缩放操作,应用起来非常灵活。MPAndroidChart同样拥有常用的图表类型:线型图、饼图、柱状图和散点图。

https://github.com/PhilJay/MPAndroidChart

由于MPAndroidChart网上收到的都是一些常见的方法属性,虽然有api文档,但是找起来也麻烦,为了方便大家我就将我遇到的问题说一下。

折线图高亮坐标线的显示隐藏

说实话这个高亮有点丑,当我们想隐藏时肯定会想到[LineChart]应该有方法设置,结果设置方法在[LineDataSet]里;然后我们调用

LineDataSet set = new LineDataSet(yVals, "");set.setHighlightEnabled(false)

结果MarkView和高亮坐标系一起不见了,于是只有另辟捷径将坐标系弄成透明的:

LineDataSet set = new LineDataSet(yVals, "");set.setHighLightColor(Color.TRANSPARENT)

X轴坐标线显示不全问题

你在使用中坑的会遇见X轴的数量过多,而屏幕过小又显示不全,而MPAndroidChart直接在最小化默认不显示,怎么办呢?

XAxis xl = lineChart.getXAxis();xl.setSpaceBetweenLabels(1)

同一图中,两条折线,根据不同的Y轴坐标画出效果

两条线,相同的X轴,那么X轴的DATA肯定是相同,不同的Y轴数据,两个LineDataSet。那么关键的一个属性设置来了,它就是让Y轴左右两边显示两级不同的value关键,就是红色框内的setAxisDependency这个方法。默认情况下,两边都显示左边Y轴数据,而方法设置为AxisDependency.RIGHT就把Y轴左右显示不同数据的功能解决了。

LineDataSet left = new LineDataSet(yVals1, "左边y轴标注");LineDataSet right = new LineDataSet(yVals2, "右边y轴标注");right.setAxisDependency(AxisDependency.RIGHT);LineData data = new LineData(xVals, dataSets);List<ILineDataSet> dataSets =new ArrayList<>();dataSets.add(left);dataSets.add(right);LineData data = new LineData("x轴数据", dataSets);

控制X轴显示格式

api没有提供相关的方法,我们只能变相的解决了,比如我们想实现下面显示双数的月份

ArrayList<String> xVals = new ArrayList<String>();for (int i = 1; i <= 12; i++) {    if (i%2==0)    xVals.add(i+"");    else    xVals.add("");}LineData data = new LineData(xVals, "y轴数据");

MarkView的样式自定义

继承MarkerView,给它一个自定义布局。就OK了

0 0