我正在使用d3.js
,以下代码段会在饼图周围呈现标签:
text.enter()
.append("text")
.attr("dy", ".35em")
.style("opacity", 0.01)
.text(function(d) {
return (d.data.NAME + ": " + d.data.amount);
});
因此标签可能会显示为Jimmy: 100
如何以粗体显示d.data.NAME
,但d.data.amount
不应为粗体?
答案 0 :(得分:3)
一种解决方案是使用<tspan>
元素与font-weight
使用不同的d.data.amount
。
查看演示:
var svg = d3.select("svg");
var text = svg.append("text")
.attr("x", 10)
.attr("y", 30)
.attr("font-weight", 700)
.text("This is bold...")
.append("tspan")
.attr("font-weight", 300)
.text(" but this is not.")
<script src="https://d3js.org/d3.v4.min.js"></script>
<svg></svg>
在你的情况下,它应该是这样的:
//...
.style("font-weight", 700)
.text(function(d) {
return d.data.NAME + ": ";
})
.append("tspan")
.style("font-weight", 300)
.text(function(d) {
return d.data.amount;
});