html可视化布局工具_简介一些蜘蛛布局标签的饼图的绘制方法

dcf62fe382b0b0249075028e798f6506.png
简介一些蜘蛛布局标签的饼图的绘制方法​mp.weixin.qq.com
253e26833cff227721a5d4a7b3727733.png

简介一些蜘蛛布局标签的饼图的绘制方法

c3291a93f073a2abdf1b0376bdc84d6e.png

N个月前摸索了这种饼图的绘制方法。就是元素比较多,不显示标签的话仅靠图例的颜色标注就会很难分辨图中的区块所指示的元素;但是显示标签的话,直接显示在饼图上或外周又会导致很大的重叠。如果指示标签的连线能拐弯,就很清晰了,例如这样。

46f70404314b1dc44e76a0e18cc2bf0c.png

这类的饼图标签形似蜘蛛,也俗称蜘蛛布局标签的饼图。

找了几种可以实现这种风格饼图的方法。

WPS饼图

其实第一眼看上去觉得上述示例图很像Excel的风格,但是查看后Excel默认的饼图样式中没有。

然后又看了WPS的饼图,这里不讨论WPS使用体验咋样,但这种国产工具通常都会提供丰富的在线样式(大家懂的),其中就包括这类蜘蛛布局标签的饼图。

选择作图数据,选择某种样式后,再略加调整就可得到了。

3b48cb4142e406ac17631ee264c6405c.png

G2Plot的交互式饼图

G2Plot(https://g2.antv.vision/zh)是一套简单、易用、并具备一定扩展能力和组合能力的统计图表库。

G2Plot提供了在线作图工具,简单易学:

https://antv-g2plot.gitee.io/zh/examples/gallery

其中就包含了蜘蛛布局标签的饼图的可视化方案。

G2Plot的本地配置,大家有兴趣可自行摸索,反正我是失败了……

5798cecab551f6b64e4ef01b425343d1.png

pyecharts的交互式饼图(python作图)

pyecharts(http://pyecharts.herokuapp.com/)是一款将python与echarts结合的强大的数据可视化工具,可用于绘制多种交互式图形。在它的库中,提供了蜘蛛布局标签的饼图的可视化方案。

网上能找到的教程大多是旧版pyecharts的,新版pyecharts变更太大且文档不全一时折腾不出来(本人用python大多都是处理文本,极少作图,不太会搞),下面还是展示的使用旧版pyecharts作图。

#安装旧版 pyecharts,没啥,因为新版的教程少,没看懂.......
#在这个链接下载旧版 pyecharts
#https://files.pythonhosted.org/packages/52/b8/e46a41c44176cd247cb1fd437e38e179ea604de28c91755c30be1046772c/pyecharts-0.5.11-py2.py3-none-any.whl
 
#注意使用 python3 环境
#对于 conda 的 python3,先把下载下的 pyecharts-0.5.11-py2.py3-none-any.whl 放在 conda 的 pkgs 路径下
#最后执行安装,shell 命令行
pip install pyecharts-0.5.11-py2.py3-none-any.whl

进入python3作图,一个示例如下。

最后输出网页文件html,交互式图形,并可从中获取png图片。

##进入 python3,执行
from pyecharts import Pie
 
label = ['Proteobacteria', 'Acidobacteria', 'Bacteroidetes', 'Actinobacteria', 'Gemmatimonadetes', 'Firmicutes', 'Chloroflexi', 'Verrucomicrobia', 'Nitrospirae', 'Latescibacteria', 'Others']
value = [0.455, 0.115, 0.151, 0.079, 0.090, 0.007, 0.020, 0.015, 0.019, 0.009, 0.040]
 
pie = Pie()
pie.add('', label, value, is_label_show = True, label_color= ['#8DD3C7', '#FFFFB3', '#BEBADA', '#FB8072', '#80B1D3', '#FDB462', '#B3DE69', '#FCCDE5', '#BC80BD', '#CCEBC5', 'gray'])
#pie.add('', label, value, is_label_show = True, is_legend_show = False, label_color= ['#8DD3C7', '#FFFFB3', '#BEBADA', '#FB8072', '#80B1D3', '#FDB462', '#B3DE69', '#FCCDE5', '#BC80BD', '#CCEBC5', 'gray'])
pie.render(path = 'pie.html')

ae30bb0fae9fefdb0223a24a537c2f81.png

plotly的交互式饼图(R作图)

其实最初是想用R搞定的,无奈一直没找到可用R包能够绘制这类饼图。想想大神们无需调用任何包就可以用基本元件从头构建,可惜咱也根本没那水平啊

ca3e5cf5996c712ca45aee6648a92171.png

plotly包的交互式饼图倒是可以把标签显示在外侧防止重叠,尽管样式不是“蜘蛛布局标签”,但也是非常美观的。

注:plotly(https://plot.ly/)是数据可视化的强大工具,支持python、javascript、matlab、R等许多API,大家感兴趣可自行摸索,这里只展示R环境的plotly。

dat <- data.frame(
label = c('Proteobacteria', 'Acidobacteria', 'Bacteroidetes', 'Actinobacteria', 'Gemmatimonadetes', 'Firmicutes', 'Chloroflexi', 'Verrucomicrobia', 'Nitrospirae', 'Latescibacteria', 'Others'),
value = c(0.455, 0.115, 0.151, 0.079, 0.090, 0.007, 0.020, 0.015, 0.019, 0.009, 0.040))
 
library(plotly)
 
p <- plot_ly(dat, labels = ~label, values = ~value, type = 'pie', textposition = 'outside', textinfo = 'label+percent') %>%
    layout(title = 'Letters', xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
        yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))
 
p

61a46c60c102209171b12172a4886076.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值