Android Chart框架 MPAndroidChart學習筆記5_折線圖
1.基本數據的設置
1.1 Entry類
public Entry(float x, float y) { ... }
可以理解為一個Enery就是坐標軸上的一個數據點
1.2 LineDataSet類
public LineDataSet(List<Entry> entries, String label) { ... }
既然是Entry數據點組成的集合,可以理解為表示數據的線
1.3 LineData
/** List constructor */
public LineData(List<ILineDataSet> sets) { ... }
可以理解為描述chart數據的類
1.3 裝載數據
public void setData(ChartData data) { ... }
調用chart的setData()方法來裝載數據
2.裝載數據示例
2.1 使用Entry構成一條數據線
List<Entry> valsComp1 = new ArrayList<Entry>();
List<Entry> valsComp2 = new ArrayList<Entry>();
Entry c1e1 = new Entry(0f, 100000f);
valsComp1.add(c1e1);
Entry c1e2 = new Entry(1f, 140000f);
valsComp1.add(c1e2);
...
Entry c2e1 = new Entry(0f, 130000f);
valsComp2.add(c2e1);
Entry c2e2 = new Entry(1f, 115000f);
valsComp2.add(c2e2);
...
2.2 設置DataSet
LineDataSet setComp1 = new LineDataSet(valsComp1, "Company 1");
setComp1.setAxisDependency(AxisDependency.LEFT);
LineDataSet setComp2 = new LineDataSet(valsComp2, "Company 2");
setComp2.setAxisDependency(AxisDependency.LEFT);
通過setAxisDependency()來設置描述數據的坐標軸是使用左邊Y軸還是右邊Y軸
2.3 將數據裝載到chart
// use the interface ILineDataSet
List<ILineDataSet> dataSets = new ArrayList<ILineDataSet>();
dataSets.add(setComp1);
dataSets.add(setComp2);
LineData data = new LineData(dataSets);
mLineChart.setData(data);
mLineChart.invalidate(); // refresh
3 在X軸添加坐標描述
正常情況下X軸的標簽描述就是數字,但是很多情況我們都需要去自定義修改,我們可以使用IAxisValueFormatter接口來自定義X軸,下面是一個例子:
final String[] quarters = new String[] { "Q1", "Q2", "Q3", "Q4" };
IAxisValueFormatter formatter = new IAxisValueFormatter() {
@Override
public String getFormattedValue(float value, AxisBase axis) {
return quarters[(int) value];
}
// we don't draw numbers, so no decimal digits needed
@Override
public int getDecimalDigits() { return 0; }
};
XAxis xAxis = mLineChart.getXAxis();
xAxis.setGranularity(1f); // minimum axis-step (interval) is 1
xAxis.setValueFormatter(formatter);
4 對數據點Entries進行排序
List<Entry> entries = ...;
Collections.sort(entries, new EntryXComparator());