您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页MPAndroidChart的一些问题解决方法

MPAndroidChart的一些问题解决方法

来源:二三娱乐

MPAndroidChart是一款基于Android的开源图表库,MPAndroidChart不仅可以在Android设备上绘制各种统计图表,而且可以对图表进行拖动和缩放操作,应用起来非常灵活。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了

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务