1

如何使用 ChartWrapper 和格式化程序为折线图/条形图的工具提示添加后缀?这是我的 ChartWrapper 代码

function drawChartb() {

    var wrapper = new google.visualization.ChartWrapper({
    chartType: 'LineChart',
    dataTable: [['Person', 'Score'], [1, .50], [2, .25]],
    options: {'legend': 'bottom', 'colors': ['#D70005'], 'chartArea': {left: 40, top: 10, width: 450}, 'vAxis': {format: '#,###%', 'viewWindow': {max: 1.05, min: .2}}, 'pointSize': 6},
    containerId: 'chart_div'
    });

    wrapper.draw();
}

这就是我不使用图表包装器的方式。

// set tooltip as percentage
var formatter = new google.visualization.NumberFormat({
pattern: '#%', 
fractionDigits: 2
});
formatter.format(data, 1);

谢谢

4

2 回答 2

7

您可以在包装器之外定义数据,在其上使用格式化程序,然后将 dataTable 设置为等于该数据源:

function drawVisualization() {

  var data = google.visualization.arrayToDataTable([
        ['Person', 'Score'], [1, .50], [2, .25]
    ]);

  // set tooltip as percentage
  var formatter = new google.visualization.NumberFormat({
    pattern: '#%',
    fractionDigits: 2
  });
  formatter.format(data, 1);

  var wrapper = new google.visualization.ChartWrapper({
    chartType: 'LineChart',
    dataTable: data,
    options: {'legend': 'bottom', 'colors': ['#D70005'], 'chartArea': {left: 40, top: 10, width: 450}, 'vAxis': {format: '#,###%', 'viewWindow': {max: 1.05, min: .2}}, 'pointSize': 6},
    containerId: 'visualization'
  });


  wrapper.draw();
}

结果:

示例图像

于 2013-07-24T06:10:47.633 回答
1

对于那些使用Google JSON 模式生成图表数据并且无法让 NumberFormat 与 ChartWrapper 一起使用的用户,您可以将格式直接应用于“f”行:null

要注意:

使用数据表 > 确定

var chart = new google.visualization.PieChart(document.getElementById('chart'));
var dataTable = new google.visualization.DataTable(data); 
var formatter = new google.visualization.NumberFormat({prefix: '$'});
formatter.format(dataTable, 1);

使用 ChartWrapper > BAD

var formatter = new google.visualization.NumberFormat({prefix: '$'});
formatter.format(data, 1);

var wrapper = new google.visualization.ChartWrapper({
    chartType: 'PieChart',
    dataTable: data,
    options: myPieChartOptions(),
    containerId: 'chart_div'
});

这就是我使用 Google JSON 正确格式化数据的方式。

示例 JSON:

{
    "cols": [
          {"id":"","label":"Product","pattern":"","type":"string"},
          {"id":"","label":"Sales","pattern":"","type":"number"}
        ],
    "rows": [
          {"c":[{"v":"Nuts","f":null},{"v":945.59080870918,"f":"$945.59"}]}
        ]
 }

这是生成该 JSON 的 PHP 代码

setlocale(LC_MONETARY, 0);

// init  arrays
$result['cols'] = array();
$result['rows'] = array();

// add col data
$result['cols'][] = array(
    "id" => "",
    "label" => "Product",
    "pattern" => "",
    "type" => "string"
);
$result['cols'][] = array(
    "id" => "",
    "label" => "Sales",
    "pattern" => "",
    "type" => "number"
);

$nutsTotalFormat =  "$".number_format($nutsTotal, 2);

$result['rows'][]["c"] = array(array("v" => "Nuts","f" => null),array("v" => $nutsTotal,"f" => $nutsTotalFormat ));

饼图将显示 $nutsTotalFormat 的格式化结果

“945.59 美元”

于 2018-08-01T22:15:50.270 回答