base ggplot2(以这个为主) ggpubr
拼图:
par里的mfrow
grid.arrage
cowplot:被最后一个取代
customlayout
patchwork:推荐使用
导出:
- 经典三段论
- ggsave(属于ggplot2)
- eoffice—topptx
基础包:绘图函数
代码语言:txt复制plot(iris[,1],iris[,3],col = iris[,5]) #设置横坐标,纵坐标,颜色
text(6.5,4, labels = 'hello')#添加文字
高级包:
ggplot2 中坚力量,语法有个性
代码语言:txt复制library(ggplot2)
ggplot(data = iris)
geom_point(mapping = aes(x = Sepal.Length,
y = Petal.Length,
color = Species))
ggplot2的语法:
- 1.入门级绘图模板:
library(ggplot2)
ggplot(data = iris)
geom_point(mapping = aes(x = Sepal.Length,
y = Petal.Length,
color = Species))
加粗部分是可以改变的地方;iris是数据来源,x和y为行和列名;列名不带引号;行末写加号代表是一个整体的代码
- 2.属性的设置:
- 手动设置
- 颜色 color
- 大小:size
- 形状:shape
- 透明度
- 填充颜色
- 映射:按照数据框的某一列来定义图的某个属性
- color = Species(默认,按照这一列设置颜色)
- 可以改变颜色:注意scale_color_manual和color是一起出现的!否则无效
- 真正的颜色:颜色编码来代替;十六进制颜色编码:搜索引擎进行搜索
- Q2:color和fill两个属性
- 空心和实心得形状都用color设置颜色
- fill:既有边框又有内心的,才需要color和fill两个参数
- 手动设置
- 3.分面:
- 根据species放在同一种图里面;竖着切
- 横着切和竖着切:先新增一列: dollar后面跟着新的列名:
- 取值数量有限且有重复值,可以按照列分开
dat = iris
dat$Group = sample(letters[1:5],150,replace = T)
ggplot(data = dat)
geom_point(mapping = aes(x = Sepal.Length, y = Petal.Length))
facet_grid(Group ~ Species)
- sample(letters[1:5],150,replace = T)
- letters[1:5]#没有赋值也能够直接使用:是R中的内置数据
- letters[1:5],3:#随机取值a b c d e中的三个
- letters[1:5],6:#代码报错了:样本数量不能大于总体的数量:replace = F;这时候改成replace = T就行了
- sample(letters[1:5],150,replace = T)
- 不要修改内置数据!!—赋值给sample
- 练习题:6.1
- 4.几何对象
- #局部设置和全局设置
ggplot(data = iris)
geom_smooth(mapping = aes(x = Sepal.Length,
y = Petal.Length))
geom_point(mapping = aes(x = Sepal.Length,
y = Petal.Length))
这个为局部设置:仅对当前图层有效
代码语言:txt复制ggplot(data = iris,mapping = aes(x = Sepal.Length, y = Petal.Length))
geom_smooth()
geom_point()
这个为全局设置:对所有图层有效
- 5.统计变换-直方图
View(diamonds)
table(diamonds$cut)
ggplot(data = diamonds)
geom_bar(mapping = aes(x = cut))
ggplot(data = diamonds)
stat_count(mapping = aes(x = cut))
- geom_bar函数:绘制柱状图;y?是默认的;
- 使用场景:
- 使用表中数据直接作图,而不统计
fre = as.data.frame(table(diamonds$cut))
fre
ggplot(data = fre)
geom_bar(mapping = aes(x = Var1, y = Freq), stat = "identity")
stat = "identity":这样子才能编辑y
- 使用场景2:不统计count,统计比例prop
ggplot(data = diamonds)
geom_bar(mapping = aes(x = cut, y = ..prop.., group = 1))
- group = 1:不用改, y = 也不需要改
- 6.位置关系
- 重叠—散开/错开 geom_point() 和geom_jitter()