ggplot2绘制气泡图+分类+趋势线

今天有小伙伴让我给他做个气泡图,我让他给我发了个例子,作图基本分为两部分,数据整理和画图,数据整体一般注意变量类型、排列、分类等,画图细节比较多,先出图,后调试(坐标轴、图例、背景、图标、标签等),我的观点是先出图,查看大体样子,然后根据需求再选择调试与否,节省时间。因为调一个图真的太花时间。

ggplot2绘制气泡图+分类+趋势线

1、模板

左边这个是气泡图+标签+分类+趋势线,
右边这个是点图+分类+趋势线+置信区间+标签
在这里插入图片描述

2、数据列

三个变量,IN.rate和C.rate为分类变量,因此需要宽转长

> data.demon1 <- data.demon[c(5,8,12)];head(data.demon1)##提取需要数据
  INevent.rate Cevent.rate endpoint
1         1.46        1.41     0.78
2         1.26        1.48     1.37
3         2.23        2.26     1.39
4         1.17        1.46     1.40
5         1.10        1.60     1.60
6         2.30        2.91     1.71
> gather(data = data.demon1,key = "IN.C",value = "event.rate",-3)
   endpoint         IN.C event.rate
1      0.78 INevent.rate       1.46
2      1.37 INevent.rate       1.26
3      1.39 INevent.rate       2.23
4      1.40 INevent.rate       1.17
5      1.60 INevent.rate       1.10
6      1.71 INevent.rate       2.30
7      1.89 INevent.rate       1.86
8      1.99 INevent.rate       1.16
9      2.09 INevent.rate       1.72

3、画图

注意:
1)ggrepel包geom_text_repel()标注
2)

##加载包
library(ggplot2)
library(ggrepel)
library(dplyr)
library(tidyr)
##转化提取数据
data.demon2 <- gather(data = data.demon1,key = "IN.C",value = "event.rate",-3)
str(data.demon2)##查看变量类型
##画图
p.demon <- ggplot(data = data.demon2,aes(x=endpoint,y=event.rate))+##数据列
  geom_point(aes(size=event.rate,color=IN.C),alpha=0.7,show.legend = TRUE)+##点图大小、颜色、透明度、图例
  geom_smooth(aes(x=endpoint,y=event.rate,color=IN.C),method = lm,linetype=1,se=FALSE,span=1)+##趋势线、颜色、方法、线型、置信区间
  guides(color=guide_legend(title=NULL))+##去除图例标题
  scale_size(range = c(1, 10),guide=FALSE)+##气泡大小区间,图例标题去除
  scale_color_manual(values=c("CornflowerBlue","Gold"),
                     breaks=c("INevent.rate","Cevent.rate"),
                     labels=c("1","2"))+##气泡颜色、图例名称修改)+##气泡颜色
  labs(x='Endpoint',y='Increase ratio')+##横纵坐标
  geom_text_repel(aes(label=event.rate))+##气泡标注
  annotate("text",x=1.0,y=2.8,label="atop(Y==3*X+5,R^2==0.9)",parse=T)+##添加公式
  #theme(legend.title = element_blank())+
  theme_bw();p.demon##设置背景theme
ggsave(p.demon,file="p_demon.png", height=7, width=10)##数据保存默认dpi300

4、结果

数据是随便整的,所以没啥趋势性。基本满足模板的情况。

在这里插入图片描述

5、引用

ggplot2–geom_smooth和曲线拟合画图
ggplot2散点图分组添加拟合曲线
R绘图 第九篇:绘制散点图和气泡图(ggplot2)

留个问题图例的位置是如何调整的?

猜你喜欢

转载自blog.csdn.net/LeaningR/article/details/112560787