生信

树形图:还是挺美观的

2020-09-28  本文已影响0人  生信云笔记

  今天想跟大家分享一下如何绘制树形图,看到这个图名字的时候应该有不少人会觉得很陌生,反正我第一次看到这个名字的时候脑海中没有什么浮出的印象。也许当你看到图的时候可能会觉得有点熟悉。其实这个图看上去给人的视觉效果还是蛮不错的。
  那么废话不多说,我们下面直接展示绘制树形图的代码:

library(ggplot2)
library(treemapify)
library(ggplotify)
data <- read.csv("https://raw.githubusercontent.com/selva86/datasets/master/proglanguages.csv")
 head(data)
                id value     parent rank
1   Java (general)   423       Java   40
2    PHP (general)   253        PHP   39
3 dotNet (general)   220     dotNet   38
4 Python (general)   219     Python   37
5        AngularJS   185 JavaScript   36
6

从上面的代码可以看到这个图的输入数据(测试原始数据的链接需要能科学上网才可以打开)有四列,其中两列是id,分别是主分类和次级分类,另外两列是数值用于确定画图的面积和坐标,下面是画图的代码:

# plot
treedata <- treemapify(data, area = "value", fill = "parent", label = "id", group = "parent")

ggplot(treedata,aes(area=rank,fill=parent,subgroup=parent,label=id))+
geom_treemap()+
geom_treemap_text(colour = "white",reflow = T)+
    scale_x_continuous(expand = c(0, 0))+
    scale_y_continuous(expand = c(0, 0))+
    scale_fill_brewer(palette = "Dark2")+
    geom_treemap_subgroup_border()+
    geom_treemap_subgroup_text(place = "bottom", grow = T, alpha = 0.8, colour ="grey")

结果见下图:

现在应该觉得有些眼熟的感觉了吧,是不是看起来效果还不错,不过看起来确实有点像课程的宣传广告!

最后

  虽然这个图在文献中不常见,但是个人觉得这个图对数据的视觉展示效果还是很吸引人的眼球,如果有合适的数据来展示可以达到给人眼前一亮的效果。emm,今天就分享到这里了。

上一篇 下一篇

猜你喜欢

热点阅读