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