Javascript D3动态垂直对齐文本

Javascript D3动态垂直对齐文本,javascript,d3.js,svg,Javascript,D3.js,Svg,我在这里看到了一些关于使用dy来垂直对齐文本的帖子,但是所有的帖子都只是选择了一个随机值,没有解释它。这个值肯定会因字体大小的不同而不同吗?我的文本的字体大小存储在一个变量fsize中,它的值可以根据其他因素而改变。我试着设置.attrdy,fsize/2不完全是这样,因为fsize是一个字符串,在ems中,但你明白了,我的文本偏离了中心。如果字体大小为fsize,我应该选择什么值?这个值肯定会根据字体大小而不同吗 如果你使用“他们”单位,那么字体大小应该是什么并不重要,因为他们是一个相对大小单

我在这里看到了一些关于使用dy来垂直对齐文本的帖子,但是所有的帖子都只是选择了一个随机值,没有解释它。这个值肯定会因字体大小的不同而不同吗?我的文本的字体大小存储在一个变量fsize中,它的值可以根据其他因素而改变。我试着设置.attrdy,fsize/2不完全是这样,因为fsize是一个字符串,在ems中,但你明白了,我的文本偏离了中心。如果字体大小为fsize,我应该选择什么值?

这个值肯定会根据字体大小而不同吗

如果你使用“他们”单位,那么字体大小应该是什么并不重要,因为他们是一个相对大小单位


因此,您可以使用经验法则,比如.attrdy,0.7em,它将文本向y方向移动字体高度的70%

这个值肯定会根据字体大小而有所不同吗

如果你使用“他们”单位,那么字体大小应该是什么并不重要,因为他们是一个相对大小单位


因此,您可以使用经验法则,比如.attrdy,0.7em,它将文本向y方向移动字体高度的70%

您能举个例子吗?JSFIDLEmaybe@thisOneGuy我的代码对小提琴来说太大了,但是如果你愿意的话,我可以给你一张图片。是的,那没关系。也许文本元素的y属性指定了文本底部的y坐标。dx属性将文本偏移到该标记上方或下方。按fsize/2偏移时,将偏移文本整个高度(大写字母高度,而非小写字母高度)的一半。如果希望小写文本居中,则应使用fsize/4。@JSBob我的文本是数字,我认为数字大约与大写字母一样高。无论如何,即使它们是小写的,这仍然没有意义,因为我的文本是waaaay off:你能提供一个例子吗?JSFIDLEmaybe@thisOneGuy我的代码对小提琴来说太大了,但是如果你愿意的话,我可以给你一张图片。是的,那没关系。也许文本元素的y属性指定了文本底部的y坐标。dx属性将文本偏移到该标记上方或下方。按fsize/2偏移时,将偏移文本整个高度(大写字母高度,而非小写字母高度)的一半。如果希望小写文本居中,则应使用fsize/4。@JSBob我的文本是数字,我认为数字大约与大写字母一样高。无论如何,即使它们是小写的,这仍然没有意义,因为我的文本是waaay off: