在用户输入后重新绘制谷歌
Redraw google after user input
所以我有一个显示数据随时间变化的Google Motion图表。PHP调用数据库获取图表数据,数据存储到JS文件中,然后html文件绘制图表(使用JS脚本)。
我希望有一个用户输入:
Start (millions):<input class="option" type="text" id="start" name="start" value="<?php echo $start?>"></input> |
End (millions): <input class="option" type="text" id="end" name="end" value="<?php echo $end?>"></input> |
,其中用户输入将设置图表的x值(单位为百万)
绘制图形的HTML和JS脚本:
function dataLoaded(myData) {
};
google.load('visualization', '1', {'packages':['motionchart']});
google.setOnLoadCallback(drawChart);
var control = new google.visualization.ControlWrapper({
'controlType': 'ChartRangeFilter',
'options': {
// Filter by the date axis.
'filterColumnIndex': 0,
'ui': {
'chartType': 'MotionChart',
'chartOptions': {
'chartArea': {'width': '90%'},
},
}
},
});
function drawChart() {
// alert("dataLoaded called");
var chartData = new google.visualization.DataTable();
chartData.addColumn('number', 'Moving Avg Volume');
chartData.addRows(chartDataRows);
var upOptions = {};
upOptions['state'] = {"playDuration":15000,"orderedByY":false,"iconType":"VBAR","yAxisOption":"6","nonSelectedAlpha":0.4,"yZoomedDataMin":0,"showTrails":false,"yZoomedDataMax":2.2,"xAxisOption":"6","iconKeySettings":[],"duration":{"multiplier":1,"timeUnit":"D"},"xZoomedDataMin":0,"yLambda":1,"yZoomedIn":false,"uniColorForNonSelected":false,"xZoomedIn":false,"dimensions":{"iconDimensions":["dim0"]},"orderedByX":true,"sizeOption":"_UNISIZE","xZoomedDataMax":122,"xLambda":1,"colorOption":"4"};
upOptions['width'] = 900;
upOptions['height'] = 600;
var upchart = new google.visualization.MotionChart(document.getElementById('who_up_chart'));
upchart.draw(chartData, upOptions);
var downOptions = {};
downOptions['state'] = {"playDuration":15000,"orderedByY":false,"iconType":"VBAR","yAxisOption":"5","nonSelectedAlpha":0.4,"yZoomedDataMin":0,"showTrails":false,"yZoomedDataMax":24000,"xAxisOption":"5","iconKeySettings":[],"duration":{"multiplier":1,"timeUnit":"D"},"xZoomedDataMin":0,"yLambda":1,"yZoomedIn":false,"uniColorForNonSelected":false,"showXScalePicker":true,"xZoomedIn":false,"dimensions":{"iconDimensions":["dim0"]},"orderedByX":true,"showYMetricPicker":true,"sizeOption":"_UNISIZE","xZoomedDataMax":122,"xLambda":1,"colorOption":"4"};
downOptions['width'] = 900;
downOptions['height'] = 600;
var downchart = new google.visualization.MotionChart(document.getElementById('who_down_chart'));
downchart.draw(chartData, downOptions);
document.getElementById('loading').innerHTML='';
}
我的X轴是从0到100,000,000,所以如果用户输入1,000,000到5,000,000,我希望图表重新绘制并只显示这些点。
我认为你正在寻找的是一个DataView。DataView就像一个接口,可以在不实际更改数据的情况下更改如何查看DataTable中的数据。
var data = new google.visualization.DataTable();
var options = {
//set your options
}
//Load Your Data Here.
var view = new google.visualization.DataView(data);
view.setRows(view.getFilteredRows([{column: 0, minValue: minTime, maxValue: maxTime}]);
var chart = new google.visualization.MotionChart(document.getElementById('chart_div'));
chart.draw(view, options)
我还注意到你在开头声明了一个ChartRangeFilter控件。要将其绑定到图表,两者都需要成为google. visualization . dashboard的一部分。我无法确定MotionChart是否能够与控件绑定,但您可以尝试一下并找出
相关文章:
- 在谷歌地图上绘制位置数据库
- 使用谷歌图表在x轴上绘制日期
- 使用复选框绘制多段线谷歌地图API3,不'不起作用
- 谷歌地图API在Javascript中,绘制圆的半径
- 使用Raphael js直接在谷歌地图上绘制
- 在最初的查询/表格绘制中只提取谷歌电子表格的一列
- 画布-绘制的线,但没有显示在谷歌检查元素
- 谷歌地图/GMAP3 - 绘制从用户地理位置到已知目的地的路线 - 需要帮助
- 用不同的x轴数据集绘制谷歌折线图
- 如何在绘制谷歌地图后将其更改为卫星视图
- 使用本地存储绘制谷歌地图
- 再次介绍如何在ajax调用后绘制谷歌图表
- 重新绘制谷歌铬滞后和故障
- 在父容器上重新绘制谷歌地图,调整大小
- 重新绘制谷歌地图以查看隐藏的移动标记
- 在用户输入后重新绘制谷歌
- 如果我只知道它的大小和东北角,如何绘制谷歌地图矩形
- 如何动态设置日期范围变量并重新绘制谷歌图表
- 在函数调用中重新绘制谷歌地图圆圈和标记
- 点击重新绘制谷歌图表