使用 Chart.JS 显示单个工具提示?

Posted

技术标签:

【中文标题】使用 Chart.JS 显示单个工具提示?【英文标题】:Display a single tooltip with Chart.JS? 【发布时间】:2015-08-22 05:04:18 【问题描述】:

我使用 Chart.JS 制作了一个图表,并希望将工具提示显示限制为 1 个单点。我有一个工作演示,当前正在显示所有工具提示,可以在这里查看:https://jsfiddle.net/p2yd6hut/

var data1 = 
  labels : ["SUN","MON","TUE","WED","THU","FRI","SAT"],
  datasets : [

  fillColor : "rgba(255,255,255,.1)",
  strokeColor : "rgba(0,0,0,.25)",
  pointColor : "#0af",
  pointStrokeColor : "rgba(255,255,255,1)",
  pointHighlightFill : "#fff",
  pointHighlightStroke : "rgba(220,220,220,1)",
  data : [150,200,235,390,290,250,250]
    
 ]


var options1 = 
  scaleFontColor : "rgba(0,0,0,1)",
  scaleLineColor : "rgba(0,0,0,.1)",
  scaleGridLineColor : "rgba(0,0,0,.1)",
  scaleShowGridLines : true,
  scaleShowLabels : false,
  scaleShowHorizontalLines : false,
  bezierCurve : false,
  scaleOverride : true,
  scaleSteps : 5,
  scaleStepWidth : 100,

  tooltipTemplate: "<%= value %>" + "Guests",
  showTooltips: true,
  tooltipFillColor: "#0af",  
  onAnimationComplete: function()     
  this.showTooltip(this.datasets[0].points, true);          
    ,
  tooltipEvents: []



new Chart(c1.getContext("2d")).Line(data1,options1);

是否可以只显示选定数据点的工具提示?例如,我希望只有周三数组中的数据为 390。

所需功能的屏幕截图:http://i.imgur.com/VdH4atw.png

非常感谢您的建议,谢谢!

【问题讨论】:

【参考方案1】:

这是解决方案https://jsfiddle.net/p2yd6hut/2/ 在 onAnimationComplete 函数上,我创建了一个新的临时数组,其值 >= 到 390

onAnimationComplete: function()
        var tempArr = [];
     this.datasets[0].points.forEach(function(point)
         if(point.value >= 390)
             tempArr.push(point);
         
     );
        this.showTooltip(tempArr, true);          
    

【讨论】:

谢谢@fermin-perdomo,这完成了我在这种情况下寻找的东西!为了可持续发展,是否可以改为针对标签?我在这个解决方案中看到的唯一问题是,如果有多个 390 值,则会显示每个值的工具提示。我对这个概念的最终使用将使显示的工具提示根据星期几发生变化。 欢迎您。是的,你可以用它来获取目标标签point.label,祝你好运!!!

以上是关于使用 Chart.JS 显示单个工具提示?的主要内容,如果未能解决你的问题,请参考以下文章

Chart.js 2.0:如何更改工具提示的标题

如何在 Chart Js 中自定义工具提示?

为chart.js中的水平条添加值

如何使用 Chart.js 向我的折线图添加点击事件

图表工作不正确chart.js

在 Chart.js 中格式化条形图的 yAxis 标签