Javascript 谷歌图表控件-最小和最大输入字段,而不是滑块
到目前为止我的代码:Javascript 谷歌图表控件-最小和最大输入字段,而不是滑块,javascript,charts,google-visualization,Javascript,Charts,Google Visualization,到目前为止我的代码: HTML: JSFiddle: 主要灵感来源于谷歌api。 我的问题是:是否可以用两个输入框来替换滑块(programmaticSlider),这两个输入框基本上可以达到相同的目的-获取图形的最小值和最大值(或者在本例中是日期)?谷歌的数据表有一个方法-->getColumnRange(columnIndex) 这将返回一个具有列的最小值和最大值的对象 要从数据中获取最小和最大日期-->getColumnRange(0) 它返回 { min: new Date(202
HTML: JSFiddle:
主要灵感来源于谷歌api。
我的问题是:是否可以用两个输入框来替换滑块(
programmaticSlider
),这两个输入框基本上可以达到相同的目的-获取图形的最小值和最大值(或者在本例中是日期)?谷歌的数据表有一个方法-->
getColumnRange(columnIndex)
这将返回一个具有列的最小值和最大值的对象
要从数据中获取最小和最大日期-->getColumnRange(0)
它返回
{
min: new Date(2020, 6, 4),
max: new Date(2020, 12, 4)
}
注意:在javascript中使用上述日期构造函数时,月份数字以零为基础。(一月=0,十二月=11)
因此-->
新日期(2020年12月4日)
=1/4/2021
由于月份设置为
12
,因此日期构造函数自动提前1个月。运行以下代码段
console.log(新日期(2020年12月4日))
您没有发布小提琴,但错误地添加了两次google dev链接。您可以发布小提琴吗?哦,很抱歉。它现在已经修复了。您只是想获取图表返回的最小/最大日期吗?还是希望用户能够将其设置在最小/最大日期内?滑块的功能类似于一种过滤器。您只需选择您希望看到图形的哪一部分。我希望输入框保持不变。啊。我正在研究解决方案,但时间不够。我会看看以后是否无法完成更多工作。本质上,您将在声明var data=[]的函数中获得数据
您可以添加对助手函数的调用,该函数将设置日期setDates(data)
在数组中获取日期的方法如下:dates.eg[i].c[0]
。这将为您提供一个日期数组,可用于HTML输入日期或jQuery日期选择器(这是最简单的)(从google文档中获取日期并将其存储在数组中)
google.charts.load('current', {'packages':['corechart', 'controls']});
google.charts.setOnLoadCallback(drawStuff);
function drawStuff() {
var dashboard = new google.visualization.Dashboard(
document.getElementById('programmatic_dashboard_div'));
var programmaticSlider = new google.visualization.ControlWrapper({
'controlType': 'DateRangeFilter',
'containerId': 'programmatic_control_div',
'options': {
'filterColumnLabel': 'Date',
'ui': {'labelStacking': 'vertical'}
}
});
var programmaticChart = new google.visualization.ChartWrapper({
'chartType': 'ColumnChart',
'containerId': 'programmatic_chart_div',
'options': {
'width': 300,
'height': 300,
'legend': 'none',
'chartArea': {'left': 15, 'top': 15, 'right': 0, 'bottom': 0}
}
});
var data = google.visualization.arrayToDataTable([
['Date', 'Views', 'Unique visitors', 'Returning visitors'],
[new Date(2020, 8, 5), 4, 2, 1],
[new Date(2020, 6, 4), 10, 6, 4],
[new Date(2020, 12, 4), 12, 5, 3],
[new Date(2020, 10, 4), 5, 1, 0]
]);
dashboard.bind(programmaticSlider, programmaticChart);
dashboard.draw(data);
}
{
min: new Date(2020, 6, 4),
max: new Date(2020, 12, 4)
}