2
私は製品の価格を示す線図に取り組んでいます。問題はグラフの振幅が非常に大きく、非常にばらついていることです。振幅が小さくなり、グラフは良く配置されただろう - Y軸の範囲が大きくなるかどう Google linechart - 小さな振幅を設定する
だから(1500年の800をしましょう)。あなたはその方法を知っていますか?
これはコードであり、実際には複数のデータセットを結合します。
<script>
function range(start, end) {
var array = [];
for (var i = start; i < end; i++) {
array.push(i);
}
return array;
}
function drawChart() {
var google_chart_json = {{ google_chart|safe }};
var datas = [];
$.each(google_chart_json, function (key, val) {
var domain = key;
var data = new google.visualization.DataTable();
data.addColumn('datetime', domain + 'Date');
data.addColumn('number', domain);
$.each(val, function (_, scan) {
var year = scan[0][0];
var month = scan[0][1];
var day = scan[0][2];
var hour = scan[0][3];
var price = scan[1];
data.addRows([
[new Date(year, month-1, day, hour), price]
]);
});
datas.push(data);
});
var joinedData = datas[0];
$.each(datas, function (index, datatable) {
console.log('joining index ' + index)
if (index != 0) {
joinedData = google.visualization.data.join(joinedData, datatable, 'full', [[0, 0]], range(1, index + 1), [1]);
}
});
var chart = new google.visualization.LineChart(document.querySelector('#chart_div'));
chart.draw(joinedData, {
height: 500,
width: 1000,
interpolateNulls: true,
explorer: {
maxZoomOut: 10,
keepInBounds: true
},
});
}
google.charts.load('current', {packages: ['corechart'], callback: drawChart});
{# google.load('visualization', '1', {packages: ['corechart'], callback: drawChart});#}
</script>
はい、ありがとう。それは最大値と最小値に依存するようにすることは可能ですか?私はJSONを使い、最大値と最小値を見つけることができますが、もっと簡単な方法があるかもしれません... –
はい、データテーブルにはメソッドgetColumnRangeがあります。これはカラムインデックスをとり、min最大値 – WhiteHat