私の 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);