javascript – Google图表“K”而不是数千

我正在使用谷歌图表工具( https://developers.google.com/chart/)来显示数据,有时候我的值真的很高(100.000).

我的图形尺寸相当小,100.000不符合,但是10万就可以了.
有没有办法配置vAxis在“K”中显示vAxis上的数字,如果值高于10k?

解决方法

Google Visualization使用 ICU Decimal Format的子集,可以使用DataView或vAxis.format设置.

不幸的是,该子集不包括除以1,000的能力.所以你需要先操纵你的数据.假设这是你的数据:

var data = google.visualization.arrayToDataTable([
    ['x','Data'],['A',123456],['B',234567],['C',456789],['D',890123],['E',789012],['F',['G',['H',['I',['J',345678],['K',['L',['M',['N',123456]
  ]);

我们需要克隆数据,然后将每个点除以1,000.这是一个简单的方法

var formattedData = data.clone();
  for (var i = 0; i < formattedData.getNumberOfRows(); i++) {
    var dataPoint = formattedData.getValue(i,1);
    formattedData.setValue(i,1,dataPoint / 1000);
  }

然后,我们可以将其设置为:vAxis:{format:“#,### k”} – 但是有一个问题.现在当您滑过系列时,您会注意到890,123显示为890.123!这不是很好,所以我们需要通过在循环中添加另一行来修复它:

var formattedData = data.clone();
  for (var i = 0; i < formattedData.getNumberOfRows(); i++) {
    var dataPoint = formattedData.getValue(i,dataPoint / 1000);
    formattedData.setFormattedValue(i,dataPoint.toString());
  }

这将使数据看起来像890123,但绘图为890.123,所以轴看起来不错.如果要添加逗号,可以使用thisthis等资源.我不会假设知道你的数据格式,所以如果你希望成千上万的分隔符,小数,或者鼠标悬停在图表上,你可以自己设计出来.

这是最后的工作代码

function drawVisualization() {
  // Create and populate the data table.
  var data = google.visualization.arrayToDataTable([
    ['x',123456]
  ]);

  // Clone data and divide by 1,000 in column 1
  var formattedData = data.clone();
  for (var i = 0; i < formattedData.getNumberOfRows(); i++) {
    var dataPoint = formattedData.getValue(i,dataPoint.toString());
  }

  // Create and draw the visualization.
  new google.visualization.LineChart(document.getElementById('visualization')).
      draw(formattedData,{curveType: "function",width: 500,height: 400,vAxis: {format: "#,###k"}}
          );
}

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...