Javascript 谷歌图表格式问题

Javascript 谷歌图表格式问题,javascript,google-visualization,Javascript,Google Visualization,我有一个折线图,其中Y轴显示为20000000,但我想将格式更改为20K,如何在google图表中更改foramt。请帮忙。 代码: load(“可视化”、“1”、{packages:[“corechart”]}); setOnLoadCallback(drawChart); 函数绘图图(){ var数据1=[“年”,“sss”,“SSE”],[“一月”,12347834],“二月”,0,0],“三月”,0,0],“四月”,0,0],“五月”,0,0],“六月”,0,0],“七月”,0,0],

我有一个折线图,其中Y轴显示为20000000,但我想将格式更改为20K,如何在google图表中更改foramt。请帮忙。 代码:


load(“可视化”、“1”、{packages:[“corechart”]});
setOnLoadCallback(drawChart);
函数绘图图(){
var数据1=[“年”,“sss”,“SSE”],[“一月”,12347834],“二月”,0,0],“三月”,0,0],“四月”,0,0],“五月”,0,0],“六月”,0,0],“七月”,0,0],“八月”,0,0],“九月”,0,0],“十月”,0,0],“十一月”,0,0],“十二月”,0,0];
var data=google.visualization.arrayToDataTable(data1);
变量选项={
图例:{位置:'top',对齐:'center'},
变量:{viewWindow:{min:0},
//节拍:[{v:2000000000,f:2k'},{v:2000000000,f:4k'},{v:600000000,f:6k'},{v:80000000,f:8k'},{v:1000000000,f:10k'},{v:12000000000,f:12k'}],
标题:“行和返回($000)”,
//格式:“#K”,
格式:“$####,####”,
网格线:{color:'#e4',count:7}},
线宽:4,
颜色:['#69699f'、'#d53200'、'#69699f']
};
var chart=new google.visualization.LineChart(document.getElementById('chart_div'));
图表绘制(数据、选项);
}

轴格式选项不支持标量格式,因此您必须通过
vAxis.ticks
选项为轴提供位置和标签列表,以便在轴上放置记号标记。如果您取消注释,您的代码包含一个注释掉的行,该行应注意这一点:

ticks: [{v: 2000000000, f: '2k'}, {v: 4000000000, f: '4k'}, {v: 6000000000, f: '6k'}, {v: 8000000000, f: '8k'}, {v: 10000000000, f: '10k'},{v:12000000000,f: '12k'}]

如果知道最大值,则可以动态创建刻度:

var max = _getMaxValue;
options.ticks = _readableTicks(max);

function _readableTicks(max) {
  var ret = [(v:0)];    //first tick
  if (max > 0) {
    var i = Math.floor(Math.log(max) / Math.log(1000));
    max = Math.round(max / Math.pow(10000, i)) * Math.pow(10000, i);
    for (var tick = 1; tick < 5; tick++ ){
      var v = max * tick/4;
      var f = (v / Math.pow(1000, i)).toFixed() * 1 + ' ' + [' ', 'k', 'M', 'G', 'T'][i];
      ret.push({v: v, f: f});
    }
  }
  return ret;
}
var max=\u getMaxValue;
options.ticks=_readableTicks(最大值);
函数_readableTicks(最大值){
var ret=[(v:0)];//第一个勾号
如果(最大值>0){
VarI=数学层(数学日志(最大)/数学日志(1000));
max=Math.round(max/Math.pow(10000,i))*Math.pow(10000,i);
对于(变量勾号=1;勾号<5;勾号++){
var v=最大*刻度/4;
变量f=(v/Math.pow(1000,i)).toFixed()*1+''+['''k','M','G','T'][i];
反向推送({v:v,f:f});
}
}
返回ret;
}

Hi,但是听说值是动态的,所以对于动态值,我如何设置它???您可以动态生成该数组;您希望使用什么标准来确定最小和最大刻度线、刻度线的数量和/或刻度线之间的间距?
var max = _getMaxValue;
options.ticks = _readableTicks(max);

function _readableTicks(max) {
  var ret = [(v:0)];    //first tick
  if (max > 0) {
    var i = Math.floor(Math.log(max) / Math.log(1000));
    max = Math.round(max / Math.pow(10000, i)) * Math.pow(10000, i);
    for (var tick = 1; tick < 5; tick++ ){
      var v = max * tick/4;
      var f = (v / Math.pow(1000, i)).toFixed() * 1 + ' ' + [' ', 'k', 'M', 'G', 'T'][i];
      ret.push({v: v, f: f});
    }
  }
  return ret;
}