我正在尝试编写一个函数来选择此轴的最后一个刻度内的文本,并在其前面加上“ $”(在这种情况下,文本为$ 100)
到目前为止,我已经使用此原型选择了最后一个刻度:
d3.selection.prototype.last = function() {
var last = this.size() - 1;
return d3.select(this[0][last]);
};
//first I select all of the ticks:
var tickLabels = d3.selectAll("g.cardbasegroup g.yaxis g.tick");
//and then use that prototype to select the last one:
var lastTick = tickLabels.last();
...但是现在我该如何在刻度中抓取该文本并在其前面加上“ $”?
你可以做 :
var textNode = lastTick.select('text');
textNode.text('$' + textNode.text());
另一种进行方法是使用该.tickFormat
方法。
var nbTicks = 5;
var axis = d3.svg.axis()
.ticks(nbTicks)
.tickFormat(function(d, i) {
if(i == nbTicks) {
return '$' + d;
}
return d;
});
此方法的问题在于的文档linear.ticks
(用于生成正确的滴答数)告诉我们:
指定的计数只是一个提示;比例尺可能会根据输入域返回更多或更少的值。
参考:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句