分享

作图详解 | 采用R绘制堆叠玫瑰图及堆叠环状条形图

 豆豆samuel 2019-05-20

    本期采用R绘制堆叠玫瑰图及堆叠环状条形图。玫瑰图与环状条形图均为极坐标系下变形的条形图,前者相当于将条形图的X轴“掰弯”,后者则相当于将条形图的Y轴“掰弯”。


    采用Excel数据绘制玫瑰图使用的扩展包与Cleveland点图的扩展包一致,均为readxl及ggplot2,其安装及调用,Excel的读取方法参见作图详解 | 采用R绘制Cleveland点图

堆叠玫瑰图的绘制

ggplot(polarmap) + geom_bar(aes(x=技术手段, fill=forcats::fct_rev(年代))) + coord_polar(theta = 'x') + scale_fill_brewer()  + theme(text=element_text(family='Hei'))

其中,“coord_polar()”为向极坐标系的投影,“coord_polar(theta = 'x')”即沿着x轴掰弯到极坐标系的条形图,

scale_fill_brewer()”为调整玫瑰的颜色, 

theme(text=element_text(family='Hei'))”用于解决可能存在的图形不能显示中文的情况,

geom_bar默认的堆叠顺序自外向内为2010-2017至<1990,forcats::fct_rev(年代)用于改变其堆叠顺序。

    堆叠的玫瑰图,每个花瓣整体大小为该分支的总量,其不同颜色代表了该分支不同年代的申请量。上图展示了核磁共振超导射频线圈领域,二级分支:线圈结构,线圈组合,线圈位置,电路设计,材料,冷却结构五个方面随着不同年代的累积申请量。

环状条形图的绘制

ggplot(polarmap) + geom_bar(aes(x=技术手段, fill=forcats::fct_rev(年代))) + coord_polar(theta = 'y') + scale_fill_brewer() + theme(text=element_text(family='Hei'))

其中,“coord_polar(theta = 'y') ”用于沿着y轴掰弯到极坐标系的条形图。

        上图为与堆叠玫瑰图相同数据绘制的环状条形图。其圆环总长度为该分支的申请总量,其不同颜色代表了该分支不同年代的申请量。

        安装了R studio和相关扩展包的小伙伴,复制完整程序,将“polarmap”修改为待读入的Excel名称,将“技术手段”,“年代”修改为待绘制的字段名称,点点run一键出图哟。


本期完整程序如下:

library(ggplot2)

library(readxl)

ggplot(polarmap)+geom_bar(aes(x=技术手段, fill=forcats::fct_rev(年代))) + coord_polar(theta = 'x') + scale_fill_brewer() + theme(text=element_text(family='Hei'))

ggplot(polarmap)+geom_bar(aes(x=技术手段, fill=forcats::fct_rev(年代))) + coord_polar(theta = 'y') + scale_fill_brewer() + theme(text=element_text(family='Hei'))


保护版权人人有责

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多