继续我的 SVG 图表项目,我创建了图表的标签(例如此处的条形图)作为字符串变量,例如
//Bar Chart series
var barData = [{
label: "Eating",
}, {
label: "Working",
}, {
label: "Sleeping",
}];
我需要以像素为单位计算每个标签的宽度以创建图例。我想取最长标签的宽度,以便可以相应地计算图例宽度。代码如下:
function legendWidth(paper, config, series){
var labelWidth = 0;
for (var n = 0; n < series.length; n++) {
var label = series[n].label;
labelWidth = Math.max(labelWidth, label.width);
}
}
label.width 返回一个 NaN 值。有没有办法计算标签中文本的像素宽度?
编辑:另外,我不知道这是否有任何帮助,但这个项目已经在画布中完成了。在画布中使用的方法是
labelWidth = Math.max(labelWidth, context.measureText(label).width);