MPAndroidChart是一款基于Android的開源圖表庫,MPAndroidChart不僅可以在Android設(shè)備上繪制各種統(tǒng)計(jì)圖表,而且可以對(duì)圖表進(jìn)行拖動(dòng)和縮放操作,應(yīng)用起來非常靈活。MPAndroidChart同樣擁有常用的圖表類型:線型圖、餅圖、柱狀圖和散點(diǎn)圖。
由于MPAndroidChart網(wǎng)上收到的都是一些常見的方法屬性,雖然有api文檔,但是找起來也麻煩,為了方便大家我就將我遇到的問題說一下。
折線圖高亮坐標(biāo)線的顯示隱藏
說實(shí)話這個(gè)高亮有點(diǎn)丑,當(dāng)我們想隱藏時(shí)肯定會(huì)想到[LineChart]應(yīng)該有方法設(shè)置,結(jié)果設(shè)置方法在[LineDataSet]里;然后我們調(diào)用
LineDataSet set = new LineDataSet(yVals, "");
set.setHighlightEnabled(false)
結(jié)果MarkView和高亮坐標(biāo)系一起不見了,于是只有另辟捷徑將坐標(biāo)系弄成透明的:
LineDataSet set = new LineDataSet(yVals, "");
set.setHighLightColor(Color.TRANSPARENT)
X軸坐標(biāo)線顯示不全問題
你在使用中坑的會(huì)遇見X軸的數(shù)量過多,而屏幕過小又顯示不全,而MPAndroidChart直接在最小化默認(rèn)不顯示,怎么辦呢?
XAxis xl = lineChart.getXAxis();
xl.setSpaceBetweenLabels(1)
同一圖中,兩條折線,根據(jù)不同的Y軸坐標(biāo)畫出效果
兩條線,相同的X軸,那么X軸的DATA肯定是相同,不同的Y軸數(shù)據(jù),兩個(gè)LineDataSet。那么關(guān)鍵的一個(gè)屬性設(shè)置來了,它就是讓Y軸左右兩邊顯示兩級(jí)不同的value關(guān)鍵,就是紅色框內(nèi)的setAxisDependency這個(gè)方法。默認(rèn)情況下,兩邊都顯示左邊Y軸數(shù)據(jù),而方法設(shè)置為AxisDependency.RIGHT就把Y軸左右顯示不同數(shù)據(jù)的功能解決了。
LineDataSet left = new LineDataSet(yVals1, "左邊y軸標(biāo)注");
LineDataSet right = new LineDataSet(yVals2, "右邊y軸標(biāo)注");
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軸數(shù)據(jù)", dataSets);
控制X軸顯示格式
api沒有提供相關(guān)的方法,我們只能變相的解決了,比如我們想實(shí)現(xiàn)下面顯示雙數(shù)的月份
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軸數(shù)據(jù)");
MarkView的樣式自定義
繼承MarkerView,給它一個(gè)自定義布局。就OK了