使用 D3,我想要一个旋转 -90º 并以 Y 轴为中心的 Y 轴标签。我认为这将是小菜一碟,并写了以下内容:
// Y Axis Label
svg.append('svg:text')
.attr('class', 'y label')
.attr('text-anchor', 'middle')
.attr('y', 0)
.attr('width', height)
.attr('transform', 'translate(-' + yAxisSpacing + ',' + height + ') rotate(-90)')
.text('Y Axis Label')
height
在这种情况下是图表的高度(svg 占据的垂直区域)。上面的代码将<text>
在图表的左下角呈现一个元素,然后将文本相对于左下角的点居中。width
不会改变,因此它不是居中而是从svg的左下角运行。
我猜想如果width
等于height
图表的 ,那么其中的文本将垂直居中。情况似乎并非如此 - 或者 -display:block
我需要在 SVG 中设置一些魔法类型属性才能在元素width
上工作。<text>
这应该怎么做?
根据回复,我使用 javascript 路由并将上面的行修改为 (height/2)...
.attr('transform', 'translate(-' + yAxisSpacing + ',' + height / 2 + ') rotate(-90)')