之前有网友问我如何在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))
hjust控制标题的水平位置,vjust控制标题的垂直距离,这个调整变化不大,是微调,angle控制标题旋转的角度。这三个参数的取值范围在不同版本的ggplot2中可能不一样。
现在来将“跟着菜鸟一起学R语言”这几个字放在图片的右上角。
p+annotate("text",x=7.3,y=4.3,label="跟着菜鸟一起学R语言")+
theme(panel.background = element_blank())
这里主要是使用annotate函数完成,通过设置X和Y的值来控制添加文本的具体位置。
接下来说说我的封面是怎么做的,其实也是非常的简单,它主要用到控制字体颜色,字体旋转角度,字体大小和字体样式。
这张图的绘制主要有两个重要步骤: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你需要知道的都在这...