gpt4 book ai didi

javascript - 如何使谷歌折线图上的线可点击

转载 作者:行者123 更新时间:2023-11-29 14:41:03 24 4
gpt4 key购买 nike

我想制作一个带有可点击线条的谷歌折线图,但我似乎只能使数据点可点击。是否也可以使数据点之间的线可点击?

最佳答案

使用配置选项focusTarget: 'category'

单击直线时,将选择最近的点。

虽然,在我现在的浏览器中,我必须按住鼠标,
~ 在线上方 2px 之前它会让我点击。

但它确实比 focusTarget: 'datum' 有效,
只允许点击该点

请参阅以下工作片段...

google.charts.load('current', {
callback: function () {
var data = new google.visualization.DataTable();
data.addColumn('number', 'X');
data.addColumn('number', 'Y');
data.addRows([
[0, 0],
[6, 11],
[12, 30],
[18, 52],
[24, 60],
[30, 55],
[36, 62],
[42, 63],
[48, 72],
[54, 71],
[60, 64],
[66, 70]
]);

// clickable line
new google.visualization.LineChart(document.getElementById('chart_div0')).draw(data, {
focusTarget: 'category'
});

// point only
new google.visualization.LineChart(document.getElementById('chart_div1')).draw(data, {
focusTarget: 'datum'
});
},
packages:['corechart']
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div>click line</div>
<div id="chart_div0"></div>
<div>point only</div>
<div id="chart_div1"></div>

编辑

如果 focusTarget: 'category' 没有成功,
另一种选择是使用 'click' event

虽然没有焦点也没有显示工具提示,但该行仍然可以点击。
但点击的位置需要相当精确。
您可以使用 targetID 来确定点击了什么/哪一行...

请看下面的片段...

google.charts.load('current', {
callback: function () {
var data = new google.visualization.DataTable();
data.addColumn('number', 'X0');
data.addColumn('number', 'Y0');
data.addColumn('number', 'Y1');
data.addRows([
[0, 0, 0],
[6, 11, 7],
[12, 30, 13],
[18, 52, 19],
[24, 60, 25],
[30, 55, 31],
[36, 62, 37],
[42, 63, 43],
[48, 72, 49],
[54, 71, 55],
[60, 64, 61],
[66, 70, 67]
]);

var chart = new google.visualization.LineChart(document.getElementById('chart_div1'));

google.visualization.events.addListener(chart, 'click', function (props) {
if (props.targetID.indexOf('line') > -1) {
var hAxis = chart.getChartLayoutInterface().getHAxisValue(props.x);
var vAxis = chart.getChartLayoutInterface().getVAxisValue(props.y);
document.getElementById('chart_div0').innerHTML = props.targetID + ' clicked at [' + hAxis + ', ' + vAxis + ']';
}
});

chart.draw(data, {
lineSize: 3,
pointSize: 5
});
},
packages:['corechart']
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div0">line click result shown here</div>
<div id="chart_div1"></div>

关于javascript - 如何使谷歌折线图上的线可点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38227335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com