如何分析ggplot2树状图,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。2017年8月份的R语言更新包中,默默地加入了支持ggplot2树状图的新几何对象,从此在R语言中制作树状图,不用再求助于第三方包的辅助了。该包既有Cran上的正式发行版,也有托管在GitHub上的开发版,安装方式如下:CRAN:install.package(“treemapify”)Github:devtools::install_github(“wilkox/treemapify”)GitHub主页:https://github.com/wilkox/treemapify载入本文章所需的扩展包:library(“ggplot2”)library(“treemapify”)library(“tweenr”)library(“gganimate”)library(“RColorBrewer”)安装该包之后,你的ggplot2中会多出一个树状图几何对象——geom_treemap()。实际上我曾经分享过一个树状图案例,但是是使用第三方辅助包制作,一直在等ggplot2出树状图图层。R语言数据可视化之——TreeMap
本次案例使用 香港云主机该(treemapify)包内的内置数据集:预览一下数据集结构:str(G20)head(G20)该数据集描述20峰会参会国家的经济指标,里面包含了五个字段,分别是全球的大区(region)、国家名称(country)、GDP指标(gdp_mil_usd)(应该是二次计算的某种指标),人类发展指数(hdi),已经经济发展程度(econ_classification)。
字段名称 类型region 因子型country 因子型gdp_mil_usd 数值型(整数)hdi 数值型(浮点)econ_classification 因子型树状图是没有显式坐标系统的一类特殊图形,依靠正方化算法,将样本总体正方形按照实际观测值占总体比例分割成单个矩形方块。因而其至少需要一个数值型变量作为输入参数。
一个简单的树状图:ggplot(G20, aes(area = gdp_mil_usd)) + geom_treemap()因为area仅仅是定义了一个数值型变量的方块大小,填充颜色是可以单独定义的。但是颜色往往也可以单独作为一个数值型度量的表达方式。
ggplot(G20, aes(area = gdp_mil_usd)) + geom_treemap(fill=”steelblue”)ggplot(G20, aes(area = gdp_mil_usd, fill = hdi)) + geom_treemap()+ scale_fill_distiller(palette=”Greens”)添加标签:包作者针对ggplot树状图写了优化好的文本 标签函数geom_treemap_text(刚开始就说过树状图超越了传统三大坐标系的范畴,没有显式声明的坐标系统,算法比较特殊因而无法使用常规的geom_text()进行添加标签)。ggplot(G20, aes(area = gdp_mil_usd, fill = hdi, label = country)) + geom_treemap() + geom_treemap_text(fontface = “italic”, colour = “red”, place = “centre”,grow = TRUE,alpha=.6)+ scale_fill_distiller(palette=”Greens”)其中place参数控制每一个方块中标签相对于四周的位置,grow则控制标签是否与方块大小自适应(呈大致比例放大缩小)次级分组(亚群):该包支持次级分组(专业术语叫做亚群),这在实际应用场景中非常广泛,比如我们在观察国家指标大小的同时,还想获取国家所属大区的总体指标,通过加入次级分组,我们可以获取两个维度信息。通过在美学映射中设置subgroup参数(一个类别型变量),函数内部可以自动完成亚群的变量聚合计算,并在图形成用框线显示出次级类别大小的规模。ggplot(G20, aes(area = gdp_mil_usd, fill = hdi, label = country,subgroup = region)) + geom_treemap() + geom_treemap_subgroup_border() + geom_treemap_subgroup_text(place = “centre”, grow = T, alpha = 0.5, colour =”black”, fontface = “italic”, min.size = 0) + geom_treemap_text(colour = “red”, place = “topleft”, reflow = T,alpha=.5)+ scale_fill_distiller(palette=”Greens”)其中reflow参数用于控制标签是否自适应矩形块大小,若按照原始大小超过矩形块,则会自动换行显示。分面系统:当你觉得使用次级分组不能获得一个很好地视觉呈现效果,geom_treemap还支持ggplot函数中的fact_grid分面参数,这就是所有ggplot2扩展函数的好处,可以继承源自于ggplot2的高级图形属性。ggplot(G20, aes(area = gdp_mil_usd, fill = region, label = country)) + geom_treemap() + geom_treemap_text(grow = T, reflow = T, colour = “black”) + facet_wrap( ~ econ_classification) + scale_fill_brewer(palette=”Blues”)+ labs(title = “The G-20 major economies”,caption = “The area of each country is proportional to its relative GDP within the economic group (advanced or developing)”,fill = “Region”)+theme(legend.position = “bottom”,plot.caption=element_text(hjust=0))GIF动画流:借助tweened包提供的差值方法,你可以实现将不同时间点的截面数据进行追加,并且编组成gganimate函数可识别的动画帧组,通过tweenlength、statelength和nframes 参数来控制变化的长度、每一帧停留的时间以及切换的帧数。G20_alt
G20_alt$gdp_mil_usd
G20_alt$hdi
tweened
animated_plot
geom_treemap(fixed = T) + geom_treemap_subgroup_border(fixed = T) + geom_treemap_subgroup_text(place = “centre”, grow = T, alpha = 0.5,colour = “black”, fontface = “italic”, min.size = 0,fixed = T) + geom_treemap_text(colour = “white”, place = “topleft”, reflow = T, fixed = T)+ scale_fill_distiller(palette=”Greens”)ani.options(interval = 1/10)gganimate(animated_plot, “E:/animated_treemap.gif”, title_frame = F,ani.width = 1000, ani.height = 800)treemapify包给ggplot2提供的geom_treemap(),填补了ggplot2原生几何对象在树状图领域的空白,可谓是进一步扩展、丰富ggplot2生态系统。关于如何分析ggplot2树状图问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注开发云行业资讯频道了解更多相关知识。
这篇文章将为大家详细讲解有关XPath怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1,XPath的使用在使用前,需要安装lxml库。安装代码:pip3 install lxml1.1XPath的常用规则:/ 表示选取…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。