MPAndroidChart的一些问题解决方法

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了

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值