ユーザーが言語と数値の形式を互いに独立して選択できるウェブアプリケーションをプログラミングして、google.chartsのLineChartを使用したい1つの軸に日付を、もう1つの軸に数値を表示するグラフを表示します。今では、言語を "en"に設定し、haxisのフォーマットを英語の形式で表示するように設定できます(11月12日)。しかし、どのように使用するためにvaxis上の数字をフォーマットするのですか? 1,000のセパレータ、すなわち1000を「1,000」ではなく「1.000」と表示していますか? (フォーマッタはツールチップにのみ影響するように見えます)。google.chartsのLineChart、ロケールを変更せずに軸上で数値形式を選択
コンプリート例:
<html>
<head>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', {'packages':['corechart'], language: 'en'});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Date', 'Numeric data'],
[new Date(2012, 10, 12), 1000],
[new Date(2012, 10, 13), 1200],
[new Date(2012, 10, 14), 1100],
[new Date(2012, 10, 15), 1300]
]);
var options = {
hAxis: {
format: "MMM dd"
},
vAxis: {
}
};
var formatter = new google.visualization.NumberFormat({ decimalSymbol: ',', groupingSymbol: '.' });
formatter.format(data, 1); // Apply formatter to second column
var chart = new google.visualization.LineChart(document.getElementById('mychart'));
chart.draw(data, options);
}
</script>
</head>
<body>
<div id="mychart" style="width: 900px; height: 500px"></div>
</body>
</html>
ありがとう、何よりも私はこれまでに思いつきました。しかし、私の問題は、vAxisに表示される番号の制御権を引き継ぐことです。違いは、データを変更することによって見ることができる。 1200を1250に置き換えます。次に、私のコードはvAxisに1000 1100 1200 1300が表示され、コードは1000 1100 1250 1300に変わります。適切な数値を見つけるためにLineChartに残す方法はありますか?同じ時間が彼らのフォーマットの支配を引き継ぐのか? –
はい、フォーマット文字列を使うのが最も簡単ですが、ピリオドをグループ化シンボルとして使うことはできません - __EDIT__を参照してください - 'getColumnRange'を使って' ticks'を作成するのではなく実際のデータ値 – WhiteHat
はい、どの値の範囲を期待していますか(値が7〜8の場合はあまりうまくいきません)。 Googleはおそらく、実際のデータに基づいて適切なティックを選択する方が優れているので、アルゴリズムを維持できることを望んでいました。この場合、私は2つの可能性を持っていると思います。自分のコードをコールバック関数で拡張して、私が望むようにチックをフォーマットしたり、コードからチックアルゴリズムを探し出し、それを適用して、あなたが行ったようにカスタムのフォーマットされたティックを構築することができます。 –