Line chart error on year rollover.

29 views
Skip to first unread message

Matthew Hait

unread,
Jan 2, 2018, 11:25:41 AM1/2/18
to Google Visualization API
Using Google Line Chart to display parts per hour. On a year rollover, the chart sifts the data to start at the beginning of the latest year. Data is inserted using PHP. Using this data for testing causes the same issue. The picture shows data being dated in January 2018. Last date in data is [new Date(2018, 1, 2, 11, 00, 00), 3].


JavaScript: 

<script type="text/javascript">
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawSarahChart);
google.charts.setOnLoadCallback(drawAnthonyChart);
google.charts.setOnLoadCallback(onechart);
google.charts.setOnLoadCallback(linechart);
function linechart() {
var data = new google.visualization.DataTable();
data.addColumn('datetime', 'Date');
data.addColumn('number', 'both hand(s)');
data.addRows([
[new Date(2017, 12, 2, 0, 00, 00), 20],
[new Date(2017, 12, 2, 1, 00, 00), 22],
[new Date(2017, 12, 2, 2, 00, 00), 22],
[new Date(2017, 12, 4, 4, 00, 00), 2],
[new Date(2017, 12, 4, 5, 00, 00), 27],
[new Date(2017, 12, 4, 6, 00, 00), 27],
[new Date(2017, 12, 4, 7, 00, 00), 27],
[new Date(2017, 12, 4, 8, 00, 00), 24],
[new Date(2017, 12, 4, 9, 00, 00), 25],
[new Date(2017, 12, 4, 10, 00, 00), 29],
[new Date(2017, 12, 4, 11, 00, 00), 32],
[new Date(2017, 12, 4, 12, 00, 00), 22],
[new Date(2017, 12, 4, 13, 00, 00), 26],
[new Date(2017, 12, 4, 14, 00, 00), 23],
[new Date(2017, 12, 4, 15, 00, 00), 19],
[new Date(2017, 12, 4, 16, 00, 00), 27],
[new Date(2017, 12, 4, 17, 00, 00), 26],
[new Date(2017, 12, 4, 18, 00, 00), 25],
[new Date(2017, 12, 4, 19, 00, 00), 23],
[new Date(2017, 12, 4, 20, 00, 00), 18],
[new Date(2017, 12, 4, 21, 00, 00), 28],
[new Date(2017, 12, 4, 22, 00, 00), 25],
[new Date(2017, 12, 4, 23, 00, 00), 27],
[new Date(2017, 12, 5, 0, 00, 00), 26],
[new Date(2017, 12, 5, 1, 00, 00), 25],
[new Date(2017, 12, 5, 2, 00, 00), 21],
[new Date(2017, 12, 5, 3, 00, 00), 28],
[new Date(2017, 12, 5, 4, 00, 00), 28],
[new Date(2017, 12, 5, 5, 00, 00), 7],
[new Date(2017, 12, 5, 6, 00, 00), 26],
[new Date(2017, 12, 5, 7, 00, 00), 28],
[new Date(2017, 12, 5, 8, 00, 00), 28],
[new Date(2017, 12, 5, 9, 00, 00), 28],
[new Date(2017, 12, 5, 10, 00, 00), 29],
[new Date(2017, 12, 5, 11, 00, 00), 28],
[new Date(2017, 12, 5, 12, 00, 00), 28],
[new Date(2017, 12, 5, 13, 00, 00), 31],
[new Date(2017, 12, 5, 14, 00, 00), 26],
[new Date(2017, 12, 5, 15, 00, 00), 26],
[new Date(2017, 12, 5, 16, 00, 00), 31],
[new Date(2017, 12, 5, 17, 00, 00), 24],
[new Date(2017, 12, 5, 18, 00, 00), 24],
[new Date(2017, 12, 5, 19, 00, 00), 23],
[new Date(2017, 12, 5, 20, 00, 00), 23],
[new Date(2017, 12, 5, 21, 00, 00), 25],
[new Date(2017, 12, 5, 22, 00, 00), 25],
[new Date(2017, 12, 5, 23, 00, 00), 28],
[new Date(2017, 12, 6, 0, 00, 00), 29],
[new Date(2017, 12, 6, 1, 00, 00), 19],
[new Date(2017, 12, 6, 2, 00, 00), 24],
[new Date(2017, 12, 6, 3, 00, 00), 28],
[new Date(2017, 12, 6, 4, 00, 00), 26],
[new Date(2017, 12, 6, 5, 00, 00), 22],
[new Date(2017, 12, 6, 6, 00, 00), 25],
[new Date(2017, 12, 6, 7, 00, 00), 24],
[new Date(2017, 12, 6, 8, 00, 00), 24],
[new Date(2017, 12, 6, 9, 00, 00), 11],
[new Date(2017, 12, 6, 10, 00, 00), 28],
[new Date(2017, 12, 6, 11, 00, 00), 28],
[new Date(2017, 12, 6, 12, 00, 00), 29],
[new Date(2017, 12, 6, 13, 00, 00), 23],
[new Date(2017, 12, 6, 14, 00, 00), 23],
[new Date(2017, 12, 6, 15, 00, 00), 28],
[new Date(2017, 12, 6, 16, 00, 00), 27],
[new Date(2017, 12, 6, 17, 00, 00), 27],
[new Date(2017, 12, 6, 18, 00, 00), 23],
[new Date(2017, 12, 6, 19, 00, 00), 27],
[new Date(2017, 12, 6, 20, 00, 00), 20],
[new Date(2017, 12, 6, 21, 00, 00), 24],
[new Date(2017, 12, 6, 22, 00, 00), 24],
[new Date(2017, 12, 6, 23, 00, 00), 26],
[new Date(2017, 12, 7, 0, 00, 00), 25],
[new Date(2017, 12, 7, 1, 00, 00), 27],
[new Date(2017, 12, 7, 2, 00, 00), 24],
[new Date(2017, 12, 7, 3, 00, 00), 26],
[new Date(2017, 12, 7, 4, 00, 00), 27],
[new Date(2017, 12, 7, 5, 00, 00), 20],
[new Date(2017, 12, 7, 6, 00, 00), 23],
[new Date(2017, 12, 7, 7, 00, 00), 20],
[new Date(2017, 12, 7, 8, 00, 00), 11],
[new Date(2017, 12, 7, 9, 00, 00), 26],
[new Date(2017, 12, 7, 10, 00, 00), 26],
[new Date(2017, 12, 7, 11, 00, 00), 29],
[new Date(2017, 12, 7, 12, 00, 00), 22],
[new Date(2017, 12, 7, 13, 00, 00), 27],
[new Date(2017, 12, 7, 14, 00, 00), 26],
[new Date(2017, 12, 7, 15, 00, 00), 20],
[new Date(2017, 12, 7, 16, 00, 00), 22],
[new Date(2017, 12, 7, 17, 00, 00), 21],
[new Date(2017, 12, 7, 18, 00, 00), 27],
[new Date(2017, 12, 7, 19, 00, 00), 19],
[new Date(2017, 12, 7, 20, 00, 00), 17],
[new Date(2017, 12, 7, 21, 00, 00), 24],
[new Date(2017, 12, 7, 22, 00, 00), 27],
[new Date(2017, 12, 7, 23, 00, 00), 21],
[new Date(2017, 12, 8, 0, 00, 00), 20],
[new Date(2017, 12, 8, 1, 00, 00), 25],
[new Date(2017, 12, 8, 2, 00, 00), 25],
[new Date(2017, 12, 8, 3, 00, 00), 28],
[new Date(2017, 12, 8, 4, 00, 00), 27],
[new Date(2017, 12, 8, 5, 00, 00), 25],
[new Date(2017, 12, 8, 6, 00, 00), 23],
[new Date(2017, 12, 8, 7, 00, 00), 27],
[new Date(2017, 12, 8, 8, 00, 00), 26],
[new Date(2017, 12, 8, 9, 00, 00), 25],
[new Date(2017, 12, 8, 10, 00, 00), 11],
[new Date(2017, 12, 8, 11, 00, 00), 20],
[new Date(2017, 12, 8, 12, 00, 00), 21],
[new Date(2017, 12, 8, 13, 00, 00), 26],
[new Date(2017, 12, 8, 14, 00, 00), 26],
[new Date(2017, 12, 8, 15, 00, 00), 23],
[new Date(2017, 12, 8, 16, 00, 00), 25],
[new Date(2017, 12, 8, 17, 00, 00), 25],
[new Date(2017, 12, 8, 18, 00, 00), 20],
[new Date(2017, 12, 8, 19, 00, 00), 26],
[new Date(2017, 12, 8, 20, 00, 00), 28],
[new Date(2017, 12, 8, 21, 00, 00), 23],
[new Date(2017, 12, 8, 22, 00, 00), 26],
[new Date(2017, 12, 8, 23, 00, 00), 21],
[new Date(2017, 12, 9, 0, 00, 00), 18],
[new Date(2017, 12, 11, 5, 00, 00), 15],
[new Date(2017, 12, 11, 6, 00, 00), 22],
[new Date(2017, 12, 11, 7, 00, 00), 27],
[new Date(2017, 12, 11, 8, 00, 00), 24],
[new Date(2017, 12, 11, 9, 00, 00), 27],
[new Date(2017, 12, 11, 10, 00, 00), 27],
[new Date(2017, 12, 11, 11, 00, 00), 23],
[new Date(2017, 12, 11, 12, 00, 00), 24],
[new Date(2017, 12, 11, 13, 00, 00), 25],
[new Date(2017, 12, 11, 14, 00, 00), 22],
[new Date(2017, 12, 11, 15, 00, 00), 20],
[new Date(2017, 12, 11, 16, 00, 00), 16],
[new Date(2017, 12, 11, 17, 00, 00), 14],
[new Date(2017, 12, 11, 18, 00, 00), 24],
[new Date(2017, 12, 11, 19, 00, 00), 22],
[new Date(2017, 12, 11, 20, 00, 00), 14],
[new Date(2017, 12, 11, 21, 00, 00), 20],
[new Date(2017, 12, 11, 22, 00, 00), 29],
[new Date(2017, 12, 11, 23, 00, 00), 24],
[new Date(2017, 12, 12, 0, 00, 00), 24],
[new Date(2017, 12, 12, 1, 00, 00), 25],
[new Date(2017, 12, 12, 2, 00, 00), 12],
[new Date(2017, 12, 12, 3, 00, 00), 28],
[new Date(2017, 12, 12, 4, 00, 00), 27],
[new Date(2017, 12, 12, 5, 00, 00), 22],
[new Date(2017, 12, 12, 6, 00, 00), 26],
[new Date(2017, 12, 12, 7, 00, 00), 24],
[new Date(2017, 12, 12, 8, 00, 00), 27],
[new Date(2017, 12, 12, 9, 00, 00), 26],
[new Date(2017, 12, 12, 10, 00, 00), 24],
[new Date(2017, 12, 12, 11, 00, 00), 21],
[new Date(2017, 12, 12, 12, 00, 00), 23],
[new Date(2017, 12, 12, 13, 00, 00), 29],
[new Date(2017, 12, 12, 14, 00, 00), 22],
[new Date(2017, 12, 12, 15, 00, 00), 20],
[new Date(2017, 12, 12, 16, 00, 00), 26],
[new Date(2017, 12, 12, 17, 00, 00), 27],
[new Date(2017, 12, 12, 18, 00, 00), 26],
[new Date(2017, 12, 12, 19, 00, 00), 24],
[new Date(2017, 12, 12, 20, 00, 00), 25],
[new Date(2017, 12, 12, 21, 00, 00), 26],
[new Date(2017, 12, 12, 22, 00, 00), 27],
[new Date(2017, 12, 12, 23, 00, 00), 27],
[new Date(2017, 12, 13, 0, 00, 00), 25],
[new Date(2017, 12, 13, 1, 00, 00), 21],
[new Date(2017, 12, 13, 2, 00, 00), 16],
[new Date(2017, 12, 13, 3, 00, 00), 27],
[new Date(2017, 12, 13, 4, 00, 00), 27],
[new Date(2017, 12, 13, 5, 00, 00), 21],
[new Date(2017, 12, 13, 6, 00, 00), 27],
[new Date(2017, 12, 13, 7, 00, 00), 27],
[new Date(2017, 12, 13, 8, 00, 00), 20],
[new Date(2017, 12, 13, 9, 00, 00), 20],
[new Date(2017, 12, 13, 10, 00, 00), 21],
[new Date(2017, 12, 13, 11, 00, 00), 24],
[new Date(2017, 12, 13, 12, 00, 00), 26],
[new Date(2017, 12, 13, 13, 00, 00), 25],
[new Date(2017, 12, 13, 14, 00, 00), 20],
[new Date(2017, 12, 13, 15, 00, 00), 26],
[new Date(2017, 12, 13, 16, 00, 00), 28],
[new Date(2017, 12, 13, 17, 00, 00), 27],
[new Date(2017, 12, 13, 18, 00, 00), 20],
[new Date(2017, 12, 13, 19, 00, 00), 21],
[new Date(2017, 12, 13, 20, 00, 00), 28],
[new Date(2017, 12, 13, 21, 00, 00), 30],
[new Date(2017, 12, 13, 22, 00, 00), 26],
[new Date(2017, 12, 13, 23, 00, 00), 23],
[new Date(2017, 12, 14, 0, 00, 00), 16],
[new Date(2017, 12, 14, 1, 00, 00), 22],
[new Date(2017, 12, 14, 2, 00, 00), 18],
[new Date(2017, 12, 14, 3, 00, 00), 27],
[new Date(2017, 12, 14, 4, 00, 00), 28],
[new Date(2017, 12, 14, 5, 00, 00), 21],
[new Date(2017, 12, 14, 6, 00, 00), 23],
[new Date(2017, 12, 14, 7, 00, 00), 23],
[new Date(2017, 12, 14, 8, 00, 00), 23],
[new Date(2017, 12, 14, 9, 00, 00), 24],
[new Date(2017, 12, 14, 10, 00, 00), 23],
[new Date(2017, 12, 14, 11, 00, 00), 24],
[new Date(2017, 12, 14, 12, 00, 00), 27],
[new Date(2017, 12, 14, 13, 00, 00), 25],
[new Date(2017, 12, 14, 14, 00, 00), 26],
[new Date(2017, 12, 14, 15, 00, 00), 27],
[new Date(2017, 12, 14, 16, 00, 00), 27],
[new Date(2017, 12, 14, 17, 00, 00), 28],
[new Date(2017, 12, 14, 18, 00, 00), 27],
[new Date(2017, 12, 14, 19, 00, 00), 26],
[new Date(2017, 12, 14, 20, 00, 00), 21],
[new Date(2017, 12, 14, 21, 00, 00), 22],
[new Date(2017, 12, 14, 22, 00, 00), 24],
[new Date(2017, 12, 14, 23, 00, 00), 27],
[new Date(2017, 12, 15, 0, 00, 00), 23],
[new Date(2017, 12, 15, 1, 00, 00), 16],
[new Date(2017, 12, 15, 2, 00, 00), 8],
[new Date(2017, 12, 15, 4, 00, 00), 5],
[new Date(2017, 12, 15, 5, 00, 00), 23],
[new Date(2017, 12, 15, 6, 00, 00), 26],
[new Date(2017, 12, 15, 7, 00, 00), 26],
[new Date(2017, 12, 15, 8, 00, 00), 24],
[new Date(2017, 12, 15, 9, 00, 00), 22],
[new Date(2017, 12, 15, 10, 00, 00), 27],
[new Date(2017, 12, 15, 11, 00, 00), 22],
[new Date(2017, 12, 15, 12, 00, 00), 27],
[new Date(2017, 12, 15, 13, 00, 00), 26],
[new Date(2017, 12, 15, 14, 00, 00), 25],
[new Date(2017, 12, 15, 15, 00, 00), 25],
[new Date(2017, 12, 15, 16, 00, 00), 22],
[new Date(2017, 12, 15, 17, 00, 00), 25],
[new Date(2017, 12, 15, 18, 00, 00), 24],
[new Date(2017, 12, 15, 19, 00, 00), 23],
[new Date(2017, 12, 15, 20, 00, 00), 23],
[new Date(2017, 12, 15, 21, 00, 00), 27],
[new Date(2017, 12, 15, 22, 00, 00), 21],
[new Date(2017, 12, 15, 23, 00, 00), 18],
[new Date(2017, 12, 16, 0, 00, 00), 21],
[new Date(2017, 12, 18, 5, 00, 00), 26],
[new Date(2017, 12, 18, 6, 00, 00), 26],
[new Date(2017, 12, 18, 7, 00, 00), 27],
[new Date(2017, 12, 18, 8, 00, 00), 23],
[new Date(2017, 12, 18, 9, 00, 00), 19],
[new Date(2017, 12, 18, 10, 00, 00), 24],
[new Date(2017, 12, 18, 11, 00, 00), 26],
[new Date(2017, 12, 18, 12, 00, 00), 25],
[new Date(2017, 12, 18, 13, 00, 00), 23],
[new Date(2017, 12, 18, 14, 00, 00), 22],
[new Date(2017, 12, 18, 15, 00, 00), 29],
[new Date(2017, 12, 18, 16, 00, 00), 29],
[new Date(2017, 12, 18, 17, 00, 00), 28],
[new Date(2017, 12, 18, 18, 00, 00), 25],
[new Date(2017, 12, 18, 19, 00, 00), 26],
[new Date(2017, 12, 18, 20, 00, 00), 30],
[new Date(2017, 12, 18, 21, 00, 00), 26],
[new Date(2017, 12, 18, 22, 00, 00), 29],
[new Date(2017, 12, 18, 23, 00, 00), 26],
[new Date(2017, 12, 19, 0, 00, 00), 18],
[new Date(2017, 12, 19, 1, 00, 00), 28],
[new Date(2017, 12, 19, 2, 00, 00), 25],
[new Date(2017, 12, 19, 3, 00, 00), 28],
[new Date(2017, 12, 19, 4, 00, 00), 28],
[new Date(2017, 12, 19, 5, 00, 00), 24],
[new Date(2017, 12, 19, 6, 00, 00), 21],
[new Date(2017, 12, 19, 7, 00, 00), 24],
[new Date(2017, 12, 19, 8, 00, 00), 26],
[new Date(2017, 12, 19, 9, 00, 00), 24],
[new Date(2017, 12, 19, 10, 00, 00), 25],
[new Date(2017, 12, 19, 11, 00, 00), 24],
[new Date(2017, 12, 19, 12, 00, 00), 23],
[new Date(2017, 12, 19, 13, 00, 00), 24],
[new Date(2017, 12, 19, 14, 00, 00), 23],
[new Date(2017, 12, 19, 15, 00, 00), 26],
[new Date(2017, 12, 19, 16, 00, 00), 25],
[new Date(2017, 12, 19, 17, 00, 00), 23],
[new Date(2017, 12, 19, 18, 00, 00), 25],
[new Date(2017, 12, 19, 19, 00, 00), 24],
[new Date(2017, 12, 19, 20, 00, 00), 3],
[new Date(2017, 12, 19, 21, 00, 00), 24],
[new Date(2017, 12, 19, 22, 00, 00), 27],
[new Date(2017, 12, 19, 23, 00, 00), 27],
[new Date(2017, 12, 20, 0, 00, 00), 22],
[new Date(2017, 12, 20, 1, 00, 00), 27],
[new Date(2017, 12, 20, 2, 00, 00), 21],
[new Date(2017, 12, 20, 3, 00, 00), 28],
[new Date(2017, 12, 20, 4, 00, 00), 25],
[new Date(2017, 12, 20, 5, 00, 00), 15],
[new Date(2017, 12, 20, 6, 00, 00), 14],
[new Date(2017, 12, 20, 7, 00, 00), 20],
[new Date(2017, 12, 20, 8, 00, 00), 24],
[new Date(2017, 12, 20, 9, 00, 00), 26],
[new Date(2017, 12, 20, 10, 00, 00), 22],
[new Date(2017, 12, 20, 11, 00, 00), 26],
[new Date(2017, 12, 20, 12, 00, 00), 27],
[new Date(2017, 12, 20, 13, 00, 00), 24],
[new Date(2017, 12, 20, 14, 00, 00), 25],
[new Date(2017, 12, 20, 15, 00, 00), 23],
[new Date(2017, 12, 20, 16, 00, 00), 24],
[new Date(2017, 12, 20, 17, 00, 00), 21],
[new Date(2017, 12, 20, 18, 00, 00), 28],
[new Date(2017, 12, 20, 19, 00, 00), 23],
[new Date(2017, 12, 20, 20, 00, 00), 25],
[new Date(2017, 12, 20, 21, 00, 00), 24],
[new Date(2017, 12, 20, 22, 00, 00), 19],
[new Date(2017, 12, 20, 23, 00, 00), 16],
[new Date(2017, 12, 21, 0, 00, 00), 12],
[new Date(2017, 12, 21, 1, 00, 00), 28],
[new Date(2017, 12, 21, 2, 00, 00), 17],
[new Date(2017, 12, 21, 3, 00, 00), 27],
[new Date(2017, 12, 21, 4, 00, 00), 27],
[new Date(2017, 12, 21, 5, 00, 00), 25],
[new Date(2017, 12, 21, 6, 00, 00), 25],
[new Date(2017, 12, 21, 7, 00, 00), 25],
[new Date(2017, 12, 21, 8, 00, 00), 24],
[new Date(2017, 12, 21, 9, 00, 00), 17],
[new Date(2018, 1, 2, 5, 00, 00), 12],
[new Date(2018, 1, 2, 6, 00, 00), 25],
[new Date(2018, 1, 2, 7, 00, 00), 26],
[new Date(2018, 1, 2, 8, 00, 00), 26],
[new Date(2018, 1, 2, 9, 00, 00), 27],
[new Date(2018, 1, 2, 10, 00, 00), 27],
[new Date(2018, 1, 2, 11, 00, 00), 3],
]);
var options = {
hAxis: {
title: 'Hour'
},
vAxis: {
title: 'PPO'
}
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>



Daniel LaLiberte

unread,
Jan 2, 2018, 11:49:20 AM1/2/18
to Google Visualization API
In JavaScript, and most other languages, the Date constructor with number arguments uses months that are indexed starting at 0.   So month 1 is actually February, and 12 is January of the next year.  That would appear to be the source of the problem you are seeing.

--
You received this message because you are subscribed to the Google Groups "Google Visualization API" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-visualization-api+unsub...@googlegroups.com.
To post to this group, send email to google-visualization-api@googlegroups.com.
Visit this group at https://groups.google.com/group/google-visualization-api.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-visualization-api/d711452b-201b-4dc9-bee5-745ad3ba5b5e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Reply all
Reply to author
Forward
0 new messages