d3,svg中如何让rect上显示文字

发布于 2022-09-06 09:22:07 字数 467 浏览 31 评论 0

我在查资料的时候发现要在rect外包裹一层g才能显示text的文本内容

<g>
    <rect>
        <text></text>
    </rect>
</g>

我在使用d3时

var svg = d3.select('body').append('svg').attr('width',400).attr('height',500)
var g = svg.append('g')
var rect = g.append('rect').attr('width',40).attr('height',40)
var text = rect.append('text').text('wa').attr('fill','white')

控制台结构和上面一样但是为什么还是不能显示出text的内容呢。。。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

可是我不能没有你 2022-09-13 09:22:07
var svg = d3.select('body').append('svg').attr('width',400).attr('height',500)
var g = svg.append('g')
var rect = g.append('rect').attr('width',40).attr('height',40)
var text = g.append('text').text('wa').attr('fill','white')
  .attr('x', 20)
  .attr('y', 20)
  .attr('text-anchor', 'middle')
  .style('font-size', '20px')
  .attr('dy', 8)

感觉你写的方式不怎么可靠,你可以在rect下面添加一个text元素,然后给text元素的xy属性一定的值把文本定位到rect里面。

獨角戲 2022-09-13 09:22:07

结构不对, 是这样:

<g>
    <rect></rect>
    <text></text>
</g>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文