React D3.js pie chart | 解决label重叠的问题

本文介绍了在使用React和D3.js创建饼图时遇到的label重叠问题及其解决方案。主要原因是数据分布不均导致小slice的label与大slice相邻而重叠。解决方法包括对原始数据排序,使大数据和小数据间隔,以及调整label的纵坐标以避免重叠。
摘要由CSDN通过智能技术生成

前面有一个月的时间,研究过基于React的dashboard开发,也试过用react-d3-compoments.js来生成图表,但是使用起来仍然有诸多限制。于是最后选择用原生的D3.js

其中,在制作饼图 pie chart的过程中,碰到了label重叠的问题,在此把解决方案写出来,给有需要的同学参考。


1. label重叠的主要原因:

当pie slice差距过大,有的slice特别大,而有的slice特别小,而且碰巧这些小的slice对应的数据在数组中正好相邻,就会出现label重叠。

试试比较这两组数据: 

Sample 1:
data = {label: 'pie chart', values:[{"name":"Aaaaaaa","value":3}, 
      {"name":"Bbbbbbb","value":1},
      {"name":"Ccccccc","value":2},
      {"name":"Ddddddd","value":90},
      {"name":"Eeeeeee","value":76},
      {"name":"Fffffff","value":86}
    ]}

Sample 2:
data = {label: 'pie chart', values:[{"name":"Aaaaaaa","value":1}, 
      {"name":"Bbbbbbb","value":90},
      {"name":"Ccccccc","value":2},
      {"name":"Ddddddd","value":86},
      {"name":"Eeeeeee","value":3},
      {"name":"Fffffff","value":76}
    ]}



2. 解决的方法:

1)对原始数据进行排序,让大数据和小数据相间,也就是上面的Sample 2.

2) 调整label的纵坐标,按照比例进行上移或者下移。


3. Details:

render:

render() {
    var data = this.formatData();
    return (
      this.make_piechart(data.values)
    )
  }

make_piechart() 方法:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值