写在前面:本文为微信公众号:生信星球的数据挖掘线上班的随堂笔记,感谢小洁老师的付出!
ggplot2作图
- 绘图分面时如果需要制定行数:
facet_wrap(~列名, nrow=行数)
- 查询某包的所有函数:
ls("package:ggplot2")# 返回的是一个字符串
为什么有时ggplot2代码在控制台会有两个加号: 1 控制台如代码未写完则第二行自动补+;2 ggplot2用+连接表示是同一张图内的代码
几何对象
- geom_xx表示几何对象
- 分组:group=某列:显式的指定分组,或者color=某列:隐式的指定分组(偷偷分组)
- geom_smooth:线图
- 几何对象可以叠加:将aes写在ggplot内为全局映射,写在geom_内则为局部映射
#练习5-2
# 1.尝试写出下图的代码
# 数据是iris
# X轴是Species
# y轴是Sepal.Width
# 图是箱线图
ggplot(data= iris, mapping = aes(x=Species,y=Sepal.Width,color = Species))+
geom_boxplot()
# 2. 尝试在此图上叠加点图,
# 能发现什么问题?
答:点重合了
ggplot(data= iris, mapping = aes(x=Species,y=Sepal.Width,color = Species))+
geom_boxplot()+geom_point()
# 3.用下列代码作图,观察结果
ggplot(test,aes(x = Sepal.Length,y = Petal.Length,color = Species)) +
geom_point()+
geom_smooth(color = "black")
# 请问,当局部映射和全局映射冲突,以谁为准?
答:局部
- ctrl+shift+C:批量取消注释
#
- 参数color表示边框 / fill表示填充的颜色
统计变换:直方图
- geom_bar()或stat_count()#只需指定x,y为count
- 如果已经统计好y值,则设置x,y后,在ase外设置 stat= "identity"
3.如果需要显示比例,则在ase中设置y=..prop.., group=1
位置关系
1.当geom_plot点堆叠的时候,需要更改为的抖动的点图:geom_jitter()
- 设置直方图每根柱子的堆叠:
- 设置直方图作并列的图:position =”dodge“
坐标系
1.翻转坐标系:加上 coord_flip()
2.极坐标系:coord_polar()
模板
ggplot(data=数据)+<GEOM_图形函数>(mapping = aes(x=,y=,...),stat=<统计数据>,position=<位置情况>)+
<坐标系函数>+<分面函数>
-
练习题:作出下图
ggplot(iris,aes(Species,Sepal.Width))+
geom_violin(aes(fill=Species))+
geom_boxplot()+
geom_jitter(aes(shape=Species))+
coord_flip()
- 图层具有顺序:先写的位于下方
ggpubr
- 写法类似传统函数
- 可以加上p值
ggplot2的图可以赋值,结果是一个列表.my_comparisons <- list( c("setosa", "versicolor"), c("setosa", "virginica"), c("versicolor", "virginica") )
p + stat_compare_means(comparisons = my_comparisons)+ # Add pairwise comparisons p-value
stat_compare_means(label.y = 9)
教程网站:sthda ,ggplot函数的细节调整方法。
- 去除灰色背景: +theme_bw()
- 去除背景和网格: +theme_classic()
图片保存
1.ggplot2系列
ggsave("名字.png/pdf/jpeg")#保存当前图片
ggsave(变量,”名字“)
2.通用
pdf(”名字“)#开始画图
画图函数
dev.off()#关闭画板
3.陨落的神器 :可以直接导出成ppt矢量图
library(export)
export
ggplot2拼图
library(patchwork)
p1+p2+p3# 直接拼图
拼图细节:统一图例/添加小标题等:详见花花的简书
调整图片文字/颜色细节:labs函数
p <- ggplot(mtcars, aes(mpg, wt, colour = cyl)) + geom_point()
p + labs(colour = "Cylinders")
p + labs(x = "New x label")
#加上颜色模式cylinders和x轴标题
p + labs(title = "New plot title")#整个左上角标题
p + labs(title = "New plot title", subtitle = "A subtitle")#小标题,通常在图下面
p + labs(title = "title", tag = "A")#整个标题,左上角写个A
p + labs(title = "title") + labs(title = NULL)#去除标题
调整图片尺寸:
ggsave(p,filename = "zz.png",width= ,height= )
png("zz.png",height= ,width=)
学习更多图图:花花的画图合辑
R数据进阶
好书推荐:《R数据科学》
- 四个重要章节:ggplot2/dplyr/reader/stringr
tidyr
-
进行数据格式转换:gather-spread
-
根据分隔符分割/合并列:separate-unit
删除缺失值:omit.na()
dplyr
- 新增列:mutate(变量名,新列名=值)
- 筛选行/列:
- filter()#按行
- select() #按列
- 排序:arrange()
- 汇总:summaries(),对不同分组进行统计学分析
- 统计数据框中某列的重复值情况:count(数据框,列名),类似于table()
-
管道符号: %>% ,(ctrl+shift+m)将上一步的输出作为下一步的输入
- 省略设置变量的操作,直接省略下一个函数的第一个参数