Android Chart框架 MPAndroidChart學(xué)習(xí)筆記5_折線圖

Android Chart框架 MPAndroidChart學(xué)習(xí)筆記5_折線圖


點(diǎn)擊這里查看項(xiàng)目源碼

1.基本數(shù)據(jù)的設(shè)置

1.1 Entry類

    public Entry(float x, float y) { ... }

可以理解為一個(gè)Enery就是坐標(biāo)軸上的一個(gè)數(shù)據(jù)點(diǎn)

1.2 LineDataSet類

    public LineDataSet(List<Entry> entries, String label) { ... }

既然是Entry數(shù)據(jù)點(diǎn)組成的集合,可以理解為表示數(shù)據(jù)的線

1.3 LineData

    /** List constructor */
    public LineData(List<ILineDataSet> sets) { ... }

可以理解為描述chart數(shù)據(jù)的類

1.3 裝載數(shù)據(jù)

    public void setData(ChartData data) { ... }

調(diào)用chart的setData()方法來裝載數(shù)據(jù)

2.裝載數(shù)據(jù)示例

2.1 使用Entry構(gòu)成一條數(shù)據(jù)線

    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 設(shè)置DataSet

    LineDataSet setComp1 = new LineDataSet(valsComp1, "Company 1");
    setComp1.setAxisDependency(AxisDependency.LEFT);
    LineDataSet setComp2 = new LineDataSet(valsComp2, "Company 2");
    setComp2.setAxisDependency(AxisDependency.LEFT);

通過setAxisDependency()來設(shè)置描述數(shù)據(jù)的坐標(biāo)軸是使用左邊Y軸還是右邊Y軸

2.3 將數(shù)據(jù)裝載到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軸添加坐標(biāo)描述

正常情況下X軸的標(biāo)簽描述就是數(shù)字,但是很多情況我們都需要去自定義修改,我們可以使用IAxisValueFormatter接口來自定義X軸,下面是一個(gè)例子:

    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 對數(shù)據(jù)點(diǎn)Entries進(jìn)行排序

    List<Entry> entries = ...;
    Collections.sort(entries, new EntryXComparator());
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,555評論 19 139
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,315評論 4 61
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,039評論 25 709
  • 做好自己 凡是讓自己心安的事情盡管去做,趁一切都來得及,多做好事善事,別去想結(jié)果,結(jié)果交給上天。這樣,做事會(huì)和你高...
    圖圖媽媽小麗閱讀 258評論 0 0
  • 普洱茶餅大如盤, 放在大廳招人眼。 笑將兒子邀一處, 茶餅勘比肚子圓。 肚大能容天下事, 茶餅越陳越值錢。
    且行且珍惜知足常樂閱讀 1,354評論 5 8

友情鏈接更多精彩內(nèi)容