google.charts.load('current', {
callback: function () {
drawChart();
window.addEventListener('resize', drawChart, false);
},
packages:['controls']
});
function drawChart() {
var formatDate = new google.visualization.DateFormat({
pattern: 'dd/MM'
});
var dataTable = new google.visualization.DataTable();
dataTable.addColumn('date', 'Date');
dataTable.addColumn('number', 'Value');
var oneDay = (1000 * 60 * 60 * 24);
var startDate = new Date(2017, 0, 16);
var endDate = new Date();
var ticksAxisH = [];
for (var i = startDate.getTime(); i < endDate.getTime(); i = i + oneDay) {
// set x value
var rowDate = new Date(i);
var xValue = {
v: rowDate,
f: formatDate.formatValue(rowDate)
};
// set y value (y = 2x + 8)
var yValue = (2 * ((i - startDate.getTime()) / oneDay) + 8);
// add data row
dataTable.addRow([
xValue,
yValue
]);
// add tick every 7 days
if (((i - startDate.getTime()) % 7) === 0) {
ticksAxisH.push(xValue);
}
}
var dashboard = new google.visualization.Dashboard(document.getElementById('dashboard'));
var filterDate = new google.visualization.ControlWrapper({
controlType: 'DateRangeFilter',
containerId: 'filter-date',
options: {
filterColumnLabel: 'Date',
ui: {
cssClass: 'filter-date'
}
}
});
var chartColumn = new google.visualization.ChartWrapper({
chartType: 'ColumnChart',
containerId: 'chart-column',
options: {
theme: 'material',
legend: {
position: 'bottom',
},
chartArea: {
top: 12,
right: 12,
bottom: 48,
left: 48,
height: '100%',
width: '100%'
},
hAxis: {
format: 'dd/MM',
ticks: ticksAxisH
}
}
});
dashboard.bind(filterDate, chartColumn);
dashboard.draw(dataTable);
}
.filter-date {
background-color: cyan;
color: red;
font-weight: bold;
white-space: nowrap;
}
.filter-date .google-visualization-controls-slider-horizontal {
width: 800px;
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="dashbord">
<div id="filter-date"></div>
<div id="chart-column"></div>
</div>