在工具提示内添加一些文本

Posted

技术标签:

【中文标题】在工具提示内添加一些文本【英文标题】:Add some Text Inside of the Tooltip 【发布时间】:2016-01-17 16:33:48 【问题描述】:

目标: 当我有光标显示工具提示时,我想添加月份的名称,然后显示数字

问题: 我不知道如何在 Chartjs 版本 1 中做到这一点

信息:

X 角为日期 请记住,月份名称会根据用户从下拉列表中的选择而改变。这个月是动态的。为了使数据是动态的,我将数据放在一个输入框中,然后将它发送到 Chart JS。 如果可能,在 JSBin 或 JSfiddle 中显示解决方案。 http://jsbin.com/mofeqavicu/edit?html,output

【问题讨论】:

【参考方案1】:

我不确定我是否正确理解了您的问题,但标签是在数组中定义的

labels: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

你可以改成

labels: ['Label 1','Label 2','Label 3','Label 4','Label 5','Label 6', 'Label 7', 8, 9, 10]

您还可以定义要在displayLineChart 中使用的标签数组。

var myLabels = ['Label 1','Label 2','Label 3','Label 4','Label 5','Label 6', 'Label 7', 8, 9, 10];

  function displayLineChart() 
    var data = 
      labels: myLabels,
      datasets: [
        label: "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: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
      , 
        label: "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: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
      ]
    ;
    var ctx = document.getElementById("lineChart").getContext("2d");
    var options = ;
    var lineChart = new Chart(ctx).Line(data, options);
  
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.2/Chart.min.js"></script>


<body onload="displayLineChart();">
  <div class="box">
    <canvas id="lineChart"  ></canvas>
  </div>
</body>

编辑:要操作工具提示中的文本,您可以在图表的选项中定义模板。你有可能:

    multiTooltipTemplate 用于多个数据集

    tooltipTemplate 用于单个数据集

对于multiTooltipTemplate,无法更改工具提示的标题,如果您想这样做,您需要定义自己的自定义工具提示。 这是因为multiTooltipTemplate 默认将 x 轴的标签作为工具提示标题。

(来源:https://***.com/a/28579665/2314737 和 https://github.com/nnnick/Chart.js/issues/499)

以下是单个数据集的示例:

var myLabels = [1,2,3,4,5,6,7,8,9,10];

  function displayLineChart() 
    var data = 
      labels: myLabels,
      datasets: [
        label: "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: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
      ,]
    ;
    var ctx = document.getElementById("lineChart").getContext("2d");
    // define multiTooltip template
    var options = 
    multiTooltipTemplate: "My Text <%= datasetLabel %> - <%= value %>",   
    // tooltipTemplate is activated only when there's just one dataset
    tooltipTemplate: "Label <%= label %>",
    ;
    
    var lineChart = new Chart(ctx).Line(data, options);
    
  
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.2/Chart.js"></script>

<body onload="displayLineChart();">
  <div class="box">
    <canvas id="lineChart"  ></canvas>
  </div>
</body>

【讨论】:

感谢您的帮助!我想让列中的数字只显示,当你有图形的光标时,你会显示带有文本“标签”的数字。我不希望文本“标签”显示在列中。列中只能看到数字。请告诉您是否需要更多信息!

以上是关于在工具提示内添加一些文本的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式将 <br>-元素添加到跨度内的文本不会断行

无论如何要在只读文本字段中添加工具提示

Angular UI-Select:如何为文本溢出添加工具提示?

如何将工具提示添加到 DataGridTextColumn

MFC 工具提示,GetDlgItemText 不返回用于工具提示的文本

在Kendo UI网格列标题上添加悬停文本