简介
知乎看到这样一个问题,不请自来回答一下,也算对这段时间可视化推文的一个总结吧。看到很多答主都给出了全面的回答,包括数据处理,统计建模等方面。而在这篇推文中,我将对自己较为擅长的领域(R语言可视化)进行详细的介绍。全文干货十足,给出的拓展链接也十分丰富。可以先收藏,以后慢慢研究。
ggplot2包
ggplot2包是Harley Wickham在2005年创建的,是包含了一套全面而连贯的语法的绘图系统。
弥补了R中创建图形缺乏一致性的缺点,且不会局限于一些已经定义好的统计图形,可以根据需要创造出任何有助于解决所遇到问题的图形。
核心理念:将绘图与数据分离,数据相关的绘图与数据无关的绘图分离,按图层作图。
也正是因为这个包,直接将R可视化推向了顶端,可以说是所有编程软件绘图最出色的包了吧。
哦对了,我把ggplot2基础进行整理,写了一个文稿,推送可见:R分享|自制112页可视化课件。如果对R语言可视化感兴趣,并且想从基础学习的话,可以配着我上的课进行学习(b站链接[1])。好几位师弟师妹回复说,听了受益匪浅噢!😁
ggplot2拓展包
除此之外,正是因为大佬的ggplot包,延伸出了很多基于ggplot的拓展包,官网一共汇总了ggplot82种拓展包[2]。
82种拓展的ggplot包
我整理的11个扩展包
大家可能会说这么多,我怎么学的完啊!不要怕,我已经把最实用,最热门的包进行整理了。
可视化是小编个人业余爱好,纯属感兴趣,于是自愿做了一名大自然搬运工(翻译工),并加上自己的理解,整理了以下11个拓展包。可以直接点击进入,所有源代码和Rmd文档可在我的github[3]中获得。这里就不对这些包做过多介绍了,但各个精品,值得一学!
- ggvis包---数据可视化交互
- ggridges包---峰峦图详细介绍
- esquisse包---不写代码生成ggplot图
- calendR包---私人定制专属日历
- corrplot包:相关性矩阵可视化
- cowplot包:用R添加水印
- flexdashboard包:用于R的简单交互式仪表盘
- gghalves包-你五毛我五毛
- 用ggpubr包制图
- reticulate包--数据科学者的福音
- igraph包--绘制网络图
其他推荐的可视化拓展包(正打算整理整理)
- ggthemes[4]
ggplot的几何图形,尺度和主题的变换。是提升图像美观的拓展包,非常推荐。下面给出一个例子:
library("ggplot2") library("ggthemes") p2 <- ggplot(mtcars, aes(x = wt, y = mpg, colour = factor(gear))) + geom_point() + ggtitle("Cars") p2 + theme_solarized() + scale_colour_solarized("blue")
当然,还有其他不同选择,官网介绍可见:Introduction to ggthemes[5],或者可以等我出教程啦!欢迎关注我的b站,公众号以及知乎,最新的R学习资料都在这呢。
- gganimate[6]
gganimate扩展了由ggplot2实现的图形语法,以包括动画的描述。为此,它提供了一系列新的语法类,可以将它们添加到plot对象中,以自定义其随时间变化的方式。这里给出一些例子:
library(ggplot2) library(gapminder) ggplot(gapminder, aes(gdpPercap, lifeExp, size = pop, colour = country)) + geom_point(alpha = 0.7, show.legend = FALSE) + scale_colour_manual(values = country_colors) + scale_size(range = c(2, 12)) + scale_x_log10() + facet_wrap(~continent) + # Here comes the gganimate specific bits labs(title = 'Year: {frame_time}', x = 'GDP per capita', y = 'life expectancy') + transition_time(year) + ease_aes('linear')
- ggrepel[7]
grepel为ggplot2提供了几何图形来解决文本标签重叠的问题。
library(ggrepel) ggplot(mtcars, aes(wt, mpg, label = rownames(mtcars))) + geom_text_repel() + geom_point(color = 'red') + theme_classic(base_size = 16)
- cowplot[8] ,gridExtra[9],patchwork[10]
关于ggplot图片组合,排版可以使用上面三个包的任意一个进行实现。我也给出了非常详细介绍。可见这几篇推文:
patchwork包;R可视乎|合并多幅图形;R可视乎|混合多个图形
5.和esquisse包类似的包:ggthemeassist[11]和ggedit[12]
可以通过点击按钮实现ggplot的绘图,并获得相应代码和轻松导出图形。