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了