使用 d3 中支持的语言环境的概念
- 根据数字格式创建 4 个语言环境
- 指定数字样式
示例代码
// #,###.##
var D3_LOCALE_NUMBER_FORMAT1 = d3.locale({
"decimal": ".",
"thousands": ",",
"grouping": [3],
"currency": ["USD", ""],
"dateTime": "%a %b %e %X %Y",
"date": "%d-%m-%Y",
"time": "%H:%M:%S",
"periods": ["AM", "PM"],
"days": ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"],
"shortDays": ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za"],
"months": ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"],
"shortMonths": ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"]
});
// #.###,##
var D3_LOCALE_NUMBER_FORMAT2 = d3.locale({
"decimal": ",",
"thousands": ".",
"grouping": [3],
"currency": ["USD", ""],
"dateTime": "%a %b %e %X %Y",
"date": "%d-%m-%Y",
"time": "%H:%M:%S",
"periods": ["AM", "PM"],
"days": ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"],
"shortDays": ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za"],
"months": ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"],
"shortMonths": ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"]
});
// # ###,##
var D3_LOCALE_NUMBER_FORMAT3 = d3.locale({
"decimal": ",",
"thousands": " ",
"grouping": [3],
"currency": ["USD", ""],
"dateTime": "%a %b %e %X %Y",
"date": "%d-%m-%Y",
"time": "%H:%M:%S",
"periods": ["AM", "PM"],
"days": ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"],
"shortDays": ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za"],
"months": ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"],
"shortMonths": ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"]
});
// # ###.##
var D3_LOCALE_NUMBER_FORMAT4 = d3.locale({
"decimal": ".",
"thousands": " ",
"grouping": [3],
"currency": ["USD", ""],
"dateTime": "%a %b %e %X %Y",
"date": "%d-%m-%Y",
"time": "%H:%M:%S",
"periods": ["AM", "PM"],
"days": ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"],
"shortDays": ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za"],
"months": ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"],
"shortMonths": ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"]
});
var yAxisNumberFormat=NUMBER_FORMAT1;
var defaultNumberFormat=NUMBER_FORMAT1;
//Scientific Prefix "s" because on Y axis we show 1000 as 1k, 1000000 as 1M
var numberStyle_Scientific="s";
// Fixed number format "f" because we dont want to show any precision(decimal) numbers
// the , (comma) indicates SHOW thousands separator.
//( NOTE:This doesn't mean that comma(,) is the thousand separartor.)
var numberStyle_Fixed=",f";
if(USER_NUMBER_FORMAT==NUMBER_FORMAT1){
yAxisNumberFormat=D3_LOCALE_NUMBER_FORMAT1.numberFormat(numberStyle_Scientific);
defaultNumberFormat=D3_LOCALE_NUMBER_FORMAT1.numberFormat(numberStyle_Fixed);
} else if(USER_NUMBER_FORMAT==NUMBER_FORMAT2){
yAxisNumberFormat=D3_LOCALE_NUMBER_FORMAT2.numberFormat(numberStyle_Scientific);
defaultNumberFormat=D3_LOCALE_NUMBER_FORMAT2.numberFormat(numberStyle_Fixed);
} else if(USER_NUMBER_FORMAT==NUMBER_FORMAT3){
yAxisNumberFormat=D3_LOCALE_NUMBER_FORMAT3.numberFormat(numberStyle_Scientific);
defaultNumberFormat=D3_LOCALE_NUMBER_FORMAT3.numberFormat(numberStyle_Fixed);
} else if(USER_NUMBER_FORMAT==NUMBER_FORMAT4){
yAxisNumberFormat=D3_LOCALE_NUMBER_FORMAT4.numberFormat(numberStyle_Scientific);
defaultNumberFormat=D3_LOCALE_NUMBER_FORMAT4.numberFormat(numberStyle_Fixed);
}
有了这个,你只需要使用 defaultNumberFormat(yourNumber);
yAxisNumberFormat(yourNumber);