Chart.js chartjs气泡图中的单个气泡可以有标签吗?

Chart.js chartjs气泡图中的单个气泡可以有标签吗?,chart.js,Chart.js,我正在使用chartjs创建一个气泡图。我可以创建描述每个气泡的工具提示,但图表的用户可能无法将鼠标悬停在气泡上查看工具提示。BubbleData对象格式不包含label元素(反正我放了一个-不走运),我已经尝试了图表数据对象的“labels”元素(尽管文档说这是用于类别标签的-你永远不知道!),以及我能想到的将label放在bubble上的所有东西 是否有使所有工具提示始终可见的工具提示配置?这对我也适用 谢谢, 格伦我也在寻找同样的东西,并想出了办法 在数据集中添加要显示的标题:“dataT

我正在使用chartjs创建一个气泡图。我可以创建描述每个气泡的工具提示,但图表的用户可能无法将鼠标悬停在气泡上查看工具提示。BubbleData对象格式不包含label元素(反正我放了一个-不走运),我已经尝试了图表数据对象的“labels”元素(尽管文档说这是用于类别标签的-你永远不知道!),以及我能想到的将label放在bubble上的所有东西

是否有使所有工具提示始终可见的工具提示配置?这对我也适用

谢谢,


格伦

我也在寻找同样的东西,并想出了办法

  • 在数据集中添加要显示的标题:“dataTitle3”

  • 使用数据标签插件

  • 简单的代码操作通过使用 “dataset.title” 我已经做了一个样品,但我想你会发现的 如果您玩游戏,如何显示您想要的数据

  • HTML:

    JAVASCRIPT:

    new Chart(document.getElementById("bubble-chart"), {
      type: 'bubble',
      data: {
        labels: "Africa",
        datasets: [{
          label: ["China"],
          backgroundColor: "rgba(255,221,50,0.2)",
          borderColor: "rgba(255,221,50,1)",
          title: "dataTitle1",//adding the title you want to show
          data: [{
            x: 21269017,
            y: 5.245,
            r: 15
          }]
        }, {
          label: ["Denmark"],
          backgroundColor: "rgba(60,186,159,0.2)",
          borderColor: "rgba(60,186,159,1)",
          title: "dataTitle2",
          data: [{
            x: 258702,
            y: 7.526,
            r: 10
          }]
        }, {
          label: ["Germany"],
          backgroundColor: "rgba(0,0,0,0.2)",
          borderColor: "#000",
          title: "dataTitle3",//adding the title you want to show
          data: [{
            x: 3979083,
            y: 6.994,
            r: 15
          }]
        }, {
          label: ["Japan"],
          backgroundColor: "rgba(193,46,12,0.2)",
          borderColor: "rgba(193,46,12,1)",
          title: "dataTitle4",//adding the title you want to show
          data: [{
            x: 4931877,
            y: 5.921,
            r: 15
          }]
        }]
      },
      options: {
        title: {
          display: true,
          text: 'Predicted world population (millions) in 2050'
        },
        scales: {
          yAxes: [{
            scaleLabel: {
              display: true,
              labelString: "Happiness"
            }
          }],
          xAxes: [{
            scaleLabel: {
              display: true,
              labelString: "GDP (PPP)"
            }
          }]
        }
      }
    });
    
    Chart.plugins.register({
      afterDatasetsDraw: function(chart, easing) {
        var ctx = chart.ctx;
    
        chart.data.datasets.forEach(function(dataset, i) {
          var meta = chart.getDatasetMeta(i);
          if (meta.type == "bubble") { //exclude scatter
            meta.data.forEach(function(element, index) {
              // Draw the text in black, with the specified font
              ctx.fillStyle = 'rgb(0, 0, 0)';
              var fontSize = 13;
              var fontStyle = 'normal';
              var fontFamily = 'Helvetica Neue';
              ctx.font = Chart.helpers.fontString(fontSize, fontStyle, fontFamily);
    
              // Just naively convert to string for now
              var dataString = dataset.data[index].toString();
              // Make sure alignment settings are correct
              ctx.textAlign = 'center';
              ctx.textBaseline = 'middle';
    
              var padding = 15;
              var position = element.tooltipPosition();
              ctx.fillText(dataset.title, position.x, position.y - (fontSize / 2) - padding);
            });
          } //if
        });
      }
    });
    

    ChartJs现在有了一个插件


    只需使用nuget或bower安装它,并添加它的引用。它会自动将z设置为标签

    hi看起来有人已经在饼图中实现了这一点:您的数据对象中也需要一个标签数组