10.Formatting Axis Values (AxisValueFormatter)(MPAndroidChart中文翻譯)

目錄

第8節(jié).Setting Colors(MPAndroidChart中文翻譯)
第9節(jié).Formatting Data Values (ValueFormatter)(MPAndroidChart中文翻譯)
第10節(jié)-Formatting Axis Values (AxisValueFormatter)(MPAndroidChart中文翻譯)
第11節(jié).General Settings & Styling(MPAndroidChart中文翻譯)
第12節(jié).Specific Settings & Styling(MPAndroidChart中文翻譯)
第13節(jié).Legend(MPAndroidChart中文翻譯)
第14節(jié).Dynamic & Realtime Data(MPAndroidChart中文翻譯)
第15節(jié). Modifying the Viewport(MPAndroidChart中文翻譯)
第16節(jié).Animations(MPAndroidChart中文翻譯)
第17節(jié). MarkerView (Popup View)(MPAndroidChart中文翻譯)
第18節(jié). The ChartData class(MPAndroidChart中文翻譯)
第19節(jié). ChartData subclasses(MPAndroidChart中文翻譯)
第20節(jié). The DataSet class (general DataSet styling)(MPAndroidChart中文翻譯)
第21節(jié). DataSet subclasses (specific DataSet styling)(MPAndroidChart中文翻譯)
第22節(jié). The ViewPortHandler(MPAndroidChart中文翻譯)
第23節(jié). Customizing the Fill-Line-Position (FillFormatter)(MPAndroidChart中文翻譯)
第24節(jié). Proguard(MPAndroidChart中文翻譯)
第25節(jié). Realm.io mobile database(MPAndroidChart中文翻譯)
第26節(jié). Creating your own (custom) DataSets(MPAndroidChart中文翻譯)
第27節(jié). Miscellaneous (more useful stuff)(MPAndroidChart中文翻譯)

在v3.0.0中介紹,該接口允許在繪制前設(shè)置XAxis和YAxis的自定義格式

Creating a Formatter

實現(xiàn)軸上的值自定義格式化都需要創(chuàng)建一個類實現(xiàn)IAxisValueFormattera接口,如下所示.這個formatter用于將軸的值始終格式化為保留1位小數(shù).

public class MyYAxisValueFormatter implements IAxisValueFormatter {

    private DecimalFormat mFormat;

    public MyAxisValueFormatter() {

        // format values to 1 decimal digit
        mFormat = new DecimalFormat("###,###,##0.0");
    }

    @Override
    public String getFormattedValue(float value, AxisBase axis) {
        // "value" represents the position of the label on the axis (x or y)
        return mFormat.format(value) + " $";
    }
    
    /** this is only needed if numbers are returned, else return 0 */
    @Override
    public int getDecimalDigits() { return 1; }
}

下面的例子展示了如何將String數(shù)組中的數(shù)值繪制到軸上:

public class MyXAxisValueFormatter implements IAxisValueFormatter {

    private String[] mValues;

    public MyXAxisValueFormatter(String[] values) {
        this.mValues = values;
    }

    @Override
    public String getFormattedValue(float value, AxisBase axis) {
        // "value" represents the position of the label on the axis (x or y)
        return mValues[(int) value];
    }
    
    /** this is only needed if numbers are returned, else return 0 */
    @Override
    public int getDecimalDigits() { return 0; }
}

Setting the Formatter

創(chuàng)建Formatter后,簡單的將它設(shè)置給選擇的軸上:

YAxis left = chart.getAxisLeft();
left.setValueFormatter(new MyYAxisValueFormatter());

String[] values = new String[] { ... };

XAxis xAxis = chart.getXAxis();
xAxis.setValueFormatter(new MyXAxisValueFormatter(values));

替換了從軸的最小值到最大值之間的默認值,軸將會顯示經(jīng)過格式化的特殊數(shù)據(jù).

Restricting Intervals

如果你使用基于數(shù)組索引的formatter(像上面說的那個),設(shè)置最小間距為1是有意義的:

axis.setGranularity(1f); // restrict interval to 1 (minimum)

這將會防止繪制重復的標簽(由于軸的間距<1).當縮放比例足夠大的時候,將會停止計算最小間距

Predefined Formatters

  • LargeValueFormatter:用于格式化大于1,000的數(shù)值.將1,000轉(zhuǎn)換為1k,1,000,000轉(zhuǎn)換為1m(million),1,000,000,000轉(zhuǎn)換為1b(billion),1 trillion轉(zhuǎn)換為1t.
  • PercentFormatter:用于顯示在一個十進制數(shù)后面增加"%"標記.尤其適用于PieChart. 50->50.0%
    *StackedValueFormatter:專門用于重疊BarChart.它語序指定顯示所有的重疊的數(shù)值,還是只顯示最頂部的數(shù)值.

Example Formatters

  • DayAxisValueFormatter:這個Formatter可以將提供的數(shù)值轉(zhuǎn)換為日期字符串,并根據(jù)縮放變換.

LegacyFormatters

發(fā)布v3.0.0之前,XAxis和YAxis有單獨的formatter,文檔可以在下載找到:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市侥蒙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鞭衩,老刑警劉巖娃善,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異聚磺,居然都是意外死亡,警方通過查閱死者的電腦和手機炬丸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來焕阿,“玉大人,你說我怎么就攤上這事首启。” “怎么了毅桃?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長钥飞。 經(jīng)常有香客問我,道長代承,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任论悴,我火速辦了婚禮,結(jié)果婚禮上膀估,老公的妹妹穿的比我還像新娘幔亥。我一直安慰自己察纯,他們只是感情好,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布饼记。 她就那樣靜靜地躺著,像睡著了一般具则。 火紅的嫁衣襯著肌膚如雪即纲。 梳的紋絲不亂的頭發(fā)上博肋,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天蜂厅,我揣著相機與錄音盟戏,去河邊找鬼究履。 笑死迫卢,一個胖子當著我的面吹牛适荣,可吹牛的內(nèi)容都是我干的脱惰。 我是一名探鬼主播轻绞,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼政勃,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了兼砖?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤讽挟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后耽梅,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡眼姐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了众旗。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡贡歧,死狀恐怖滩租,靈堂內(nèi)的尸體忽然破棺而出利朵,到底是詐尸還是另有隱情,我是刑警寧澤绍弟,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站晌柬,受9級特大地震影響姥份,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜澈歉,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望埃难。 院中可真熱鬧莹弊,春花似錦涡尘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽川梅。三九已至疯兼,卻和暖如春贫途,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背丢早。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留怨酝,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓凫碌,卻偏偏與公主長得像扑毡,于是被迫代替她去往敵國和親盛险。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容