代码语言:javascript复制我记得之前分享过一篇文章 ggplot2绘图添加文本注释上下标问题,ggplot2画图如果添加文本注释可以用
annotate()
这个函数。简单的小例子
library(extrafont)
fonts()
ggplot(df,aes(x=A,y=B,color=D))
geom_point(aes(shape=D),size=10)
theme_bw()
theme(legend.position = "none")
annotate(geom = "text",x=3,y=8.5,label="小明的数据分析笔记本",
size=10,family="STKaiti")
image.png
如果要添加上标,annotate()
函数label
参数的写法
ggplot(df,aes(x=A,y=B,color=D))
geom_point(aes(shape=D),size=10)
theme_bw()
theme(legend.position = "none")
annotate(geom = "text",x=3,y=8.5,
label="atop(小明的数据分析笔记本^'***')",
parse=T,
size=10)
image.png
添加拟合方程的R2的写法
代码语言:javascript复制ggplot(df,aes(x=A,y=B,color=D))
geom_point(size=5)
annotate("text",x=3,y=7.5,
label="atop(R^2==0.9^'***')",
parse=T,size=10)
theme_bw()
theme(legend.position="none")
image.png
公众号一位读者留言问 自己的数据是经过计算的的只有分位数和中位数的数据,应该如何画箱线图?我自己能想到的一个办法是利用
annotate()
函数画线段,将其组合成为一个箱子。
下面举一个简单的小例子
代码语言:javascript复制library(ggplot2)
ggplot()
annotate(geom = "segment",x=1,xend=1.5,y=1,yend=1)
annotate(geom = "segment",x=1,xend=1.5,y=2,yend=2)
annotate(geom = "segment",x=1,xend=1,y=1,yend=2)
annotate(geom = "segment",x=1.5,xend=1.5,y=1,yend=2)
annotate(geom = "segment",x=1,xend=1.5,y=1.5,yend=1.5)
xlim(0,5)
ylim(0,5)
image.png
当然问题又来了,如果是这样作图应该如何填充颜色呢?
应该还有其他办法可以实现,问题先留在这里,想到解决办法再来补充