xze*_*gga 5 javascript charts google-visualization angularjs angular-chart
我正在我的项目中使用谷歌折线图和 angularjs 指令,我正在搜索如何在悬停时获得垂直线,例如谷歌趋势而不是放置固定线,但我找不到如何做到这一点。
这就是我想要尝试做的:
我只是隐藏垂直线,但在鼠标悬停时不显示,这是我对 angular-google-chart 指令的选项
options: {
vAxis: {
title: 'My title',
gridlines: {
count: 10
}
},
hAxis: {
title: 'title hAxis',
gridlines: {
color: 'transparent'
}
}
}
Run Code Online (Sandbox Code Playgroud)
没有标准的配置选项,但您可以在悬停时添加自己的行...
请参阅以下工作片段的示例...
google.charts.load('current', {
callback: drawChart,
packages: ['corechart']
});
function drawChart() {
var dataTable = new google.visualization.DataTable({
cols: [
{id: 'x', label: 'Date', type: 'date'},
{id: 'y', label: 'Fn', type: 'number'}
]
});
var formatDate = new google.visualization.DateFormat({
pattern: 'MMM d, yyyy'
});
var oneDay = (1000 * 60 * 60 * 24);
var startDate = new Date(2016, 1, 21);
var endDate = new Date();
var ticksAxisH = [];
for (var i = startDate.getTime(); i < endDate.getTime(); i = i + oneDay) {
// x = date
var rowDate = new Date(i);
var xValue = {
v: rowDate,
f: formatDate.formatValue(rowDate)
};
// y = 2x + 8
var yValue = (2 * ((i - startDate.getTime()) / oneDay) + 8);
// add data row
dataTable.addRow([
xValue,
yValue
]);
// add tick every 90 days
if ((((i - startDate.getTime()) / oneDay) % 90) === 0) {
ticksAxisH.push(xValue);
}
}
var container = document.getElementById('chart_div');
var chart = new google.visualization.ChartWrapper({
chartType: 'LineChart',
dataTable: dataTable,
options: {
hAxis: {
gridlines: {
color: 'transparent'
},
ticks: ticksAxisH,
title: 'title hAxis'
},
tooltip: {
isHtml: true
},
vAxis: {
gridlines: {
count: 10
},
title: 'My title'
}
}
});
// add hover line
google.visualization.events.addOneTimeListener(chart, 'ready', function () {
var svgParent = container.getElementsByTagName('svg')[0];
var layout = chart.getChart().getChartLayoutInterface();
var lineHeight = layout.getBoundingBox('chartarea').height - 18;
var lineTop = layout.getBoundingBox('chartarea').top;
var hoverLine = container.getElementsByTagName('rect')[0].cloneNode(true);
hoverLine.setAttribute('y', lineTop);
hoverLine.setAttribute('height', lineHeight);
hoverLine.setAttribute('width', '1');
hoverLine.setAttribute('stroke', 'none');
hoverLine.setAttribute('stroke-width', '0');
hoverLine.setAttribute('fill', '#cccccc');
google.visualization.events.addListener(chart.getChart(), 'onmouseover', function (p) {
if (p.row !== null) {
var xPos = layout.getXLocation(dataTable.getValue(p.row, 0));
svgParent.appendChild(hoverLine);
hoverLine.setAttribute('x', xPos);
}
});
google.visualization.events.addListener(chart.getChart(), 'onmouseout', function (p) {
if (p.row !== null) {
svgParent.removeChild(hoverLine);
}
});
});
chart.draw(container);
}Run Code Online (Sandbox Code Playgroud)
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3994 次 |
| 最近记录: |