ggplot2——annotate注释

浏览: 10180

之前有网友问我如何在ggplot2绘制的图片左上角添加文字,由于最近个人的一些事情比较忙,一直没能及时回复,所以今天通过这篇文章分享一个通过注释的方法来完成这个。

这里以iris数据为例,

library(ggplot2)
head(iris)
data("iris")
p<-ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width))+geom_point()+aes(colour=Species)

首先来说说关于标题的问题,标题和副标题可以通过ggtitle来添加,在theme中通过hjust,vjust和angle控制位置。

p+ggtitle("iris analyze",subtitle = "跟着菜鸟一起学R语言")+theme(
 plot.title =element_text(hjust = 0.5,vjust = 1),plot.subtitle = element_text(hjust = 0.5))

image.png

hjust控制标题的水平位置,vjust控制标题的垂直距离,这个调整变化不大,是微调,angle控制标题旋转的角度。这三个参数的取值范围在不同版本的ggplot2中可能不一样。


现在来将“跟着菜鸟一起学R语言”这几个字放在图片的右上角。

p+annotate("text",x=7.3,y=4.3,label="跟着菜鸟一起学R语言")+
 theme(panel.background = element_blank())

image.png

这里主要是使用annotate函数完成,通过设置X和Y的值来控制添加文本的具体位置。

接下来说说我的封面是怎么做的,其实也是非常的简单,它主要用到控制字体颜色,字体旋转角度,字体大小和字体样式。

image.png

这张图的绘制主要有两个重要步骤:1是导入系统字体。2是使用annotate添加文字。

1.导入系统文字

这里使用windowsFonts函数导入系统字体,在annotate中使用该字体,

并进行一定调整。

windowsFonts(
 JP1 = windowsFont("华文彩云"),
 JP2 = windowsFont("华文琥珀"),
 JP3 = windowsFont("仿宋"),
 JP4 = windowsFont("黑体"),
 JP5 = windowsFont("楷体")
 )

2.添加文字

此处也是用annotate函数完成的,不过就是叠加的多了几个而已。

p+annotate("text",x=6,y=3,label="跟着菜鸟一起学R语言",size=11,angle=30,alpha=0.2,family="JP2")+
 annotate("text",x=7,y=2.2,label="跟着菜鸟一起学R语言",size=8,angle=-15,alpha=0.9,colour="red",family="JP3")+
 annotate("text",x=7,y=4,label="跟着菜鸟一起学R语言",size=6,angle=-30,alpha=0.5,colour="blue",family="JP4")+
 annotate("text",x=5,y=4,label="跟着菜鸟一起学R语言",size=8,angle=-10,alpha=0.7,colour="green",family="JP1")+
 annotate("text",x=5,y=3,label="跟着菜鸟一起学R语言",size=6,angle=-30,alpha=0.5,colour="blue",family="JP5")

其实ggplot2的绘图思想和Photoshop的思想十分类似,就是在一个图层上面再添加一个图层。对于一些比较复杂的图片,无非是叠加的图层多一些而已。

☞ 推荐阅读 

1:用 = 还是<-?傻傻分不清

2:Windows系统是这样配置spark环境的

3:正则表达式提取腾讯教育新闻链接及图片链接

4:基于Spark ALS算法的个性化推荐(仅需三行代码)

    5:初识sparklyr—电影数据分析

6:RStudio竟然把这么多好东西放在这

7:ggplot2你需要知道的都在这...

image.png

 

推荐 0
本文由 王亨 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册