Javascript 为什么是Chart.js';鼠标悬停时,工具提示出现在错误的位置?
这是我使用新版Chart.js的代码Javascript 为什么是Chart.js';鼠标悬停时,工具提示出现在错误的位置?,javascript,html,graph,tooltip,chart.js,Javascript,Html,Graph,Tooltip,Chart.js,这是我使用新版Chart.js的代码 <script> var randomScalingFactor = function(){ return Math.round(Math.random()*100)}; var lineChartData = { labels : ["January","February","March","April","May","June","July","January","February","March","Apri
<script>
var randomScalingFactor = function(){ return Math.round(Math.random()*100)};
var lineChartData = {
labels : ["January","February","March","April","May","June","July","January","February","March","April","May","June","July","January","February","March","April","May","June","July","January","February","March","April","May","June","July","January","February","March","April","May","June","July","January","February","March","April","May","June","July","June","July"],
datasets : [
{
label: "My First dataset",
fillColor : "rgba(220,220,220,0.2)",
strokeColor : "rgba(220,220,220,1)",
pointColor : "rgba(220,220,220,1)",
pointStrokeColor : "#fff",
pointHighlightFill : "#fff",
pointHighlightStroke : "rgba(220,220,220,1)",
data : [randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),9000,randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor()]
},
{
label: "My Second dataset",
fillColor : "rgba(151,187,205,0.2)",
strokeColor : "rgba(151,187,205,1)",
pointColor : "rgba(151,187,205,1)",
pointStrokeColor : "#fff",
pointHighlightFill : "#fff",
pointHighlightStroke : "rgba(151,187,205,1)",
data : [randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),20000,randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),8977,randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor()]
}
]
}
window.onload = function(){
var ctx = document.getElementById("canvas").getContext("2d");
window.myLine = new Chart(ctx).Line(lineChartData, {
responsive: false,
showTooltips: true,
bezierCurve : false,
pointDot : false,
});
}
</script>
var randomScalingFactor=function(){return Math.round(Math.random()*100)};
变量lineChartData={
标签:[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“一月”、“二月”、“三月”、“四月”、“五月”、“三月”、“三月”、“三月”、“三月”、“七月”、“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“一月”、“一月”、“二月”、“三月”、“四月”、“四月”、“五月”、“五月”、“六月”、“六月”、“七月”、“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“六月”,“七月”、“六月”、“七月”],
数据集:[
{
标签:“我的第一个数据集”,
填充颜色:“rgba(220220,0.2)”,
strokeColor:“rgba(2201)”,
点颜色:“rgba(220220,1)”,
pointStrokeColor:“fff”,
pointHighlightFill:“fff”,
pointHighlightStroke:“rgba(2201)”,
数据:[随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),9000,randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor()
},
{
标签:“我的第二个数据集”,
填充颜色:“rgba(151187205,0.2)”,
strokeColor:“rgba(151187205,1)”,
点颜色:“rgba(151187205,1)”,
pointStrokeColor:“fff”,
pointHighlightFill:“fff”,
pointHighlightStroke:“rgba(151187205,1)”,
数据:[随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),随机缩放因子(),20000,随机缩放因子(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor()
}
]
}
window.onload=函数(){
var ctx=document.getElementById(“画布”).getContext(“2d”);
window.myLine=新图表(ctx).Line(lineChartData{
回答:错,
showTooltips:true,
贝塞尔曲线:错,
点点:错,
});
}
结果是..
-->红色的点是我的鼠标悬停,但那是错误的!正确的位置应该是黑色的点
谢谢:)默认的命中检测半径有点大。请尝试设置
pointHitDetectionRadius : 1,
这为具有许多数据点的图提供了更多的定义
更新:我遇到了一个类似的问题,工具提示离鼠标很远。这将使工具提示锁定到离鼠标最近的点:
options: {
tooltips: {
mode: 'nearest',
intersect: false
}
}
这是一个它看起来像什么的例子(红点是我的鼠标所在的位置):像这样制作工具提示,它可以工作
工具提示:{
模式:“标签”,
位置:“最近”,
标签:“mylabel”,
回调:{
标签:函数(工具提示项、数据){
返回data.datasets[tooltipItem.datasetIndex].label+“”+number_format2(tooltipItem.yLabel.toString(),2',,,,,,,;},},
}
是的,chartjs在活动中获取数据的方式似乎存在问题,以小提琴的形式复制,也许可以在github上的问题页面上查看是否有相关内容。当数据较少时,似乎可以使用模式:“最近的”,而wanos的答案没有。