base
ggplot2 ★
ggpubr
拼图
par里的mfrow
grid.arrange
cowplot
customLayout
patchwork ★
导出
经典三段论
ggsave ★(属于ggplot2,可以存储)
eoffice (可以导出为ppt)
2.1手动设置(与数据内容无关)
2.2映射:按照数据框的某一列来定义图的某个属性
也可自行指定映射的颜色
ggplot(data=iris)+
geom_point(mapping=aes(x=Sepal.Length,
y=Petal.Length,
color=Species))+
scale_color_manual(values=c("bule","grey","red"))
2.3 分面
ggplot(data = iris) +
geom_point(mapping = aes(x = Sepal.Length, y = Petal.Length)) +
facet_wrap(~ Species)
双分面
dat = iris #把iris的内容传递给变量dat
dat$Group = sample(letters[1:5],150,replace = T) #dat中新增一列group,
ggplot(data = dat) +
geom_point(mapping = aes(x = Sepal.Length, y = Petal.Length)) +
facet_grid(Group ~ Species)
用来分面的列的要求:必须有重复值,且重复值的数量是有限的。
练习题
load("test.Rdata")
ggplot(test)+
geom_point(mapping = aes(x = a,
y = b,
color = change))+
scale_color_manual(values =c("darkgreen","grey","red"))
#注意ggplot(test),不是ggplot("test.Rdata")!
文件名称和变量名称的区分:test=read.csv test是变量名称,read.csv是文件名称。文件名称出现在代码里,必须是在实际参数的位置上,带着引号出现,并且函数是能识别文件名称的函数。ggplot函数不能识别文件,只能识别变量。看环境中是否有这个变量。画图是用数据画图。
2.4 几何对象
#局部,每一个geom管自己的mapping,仅对当前图层有效
ggplot(data = iris) +
geom_smooth(mapping = aes(x = Sepal.Length,
y = Petal.Length))+
geom_point(mapping = aes(x = Sepal.Length,
y = Petal.Length))
#全局 对所有图层有效
ggplot(data = iris,mapping = aes(x = Sepal.Length, y = Petal.Length))+
geom_smooth()+
geom_point()
两个代码的结果是一样的
2.5 统计变换(柱状图)
View(diamonds) #diamonds是内置数据
table(diamonds$cut)
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut))
ggplot(data = diamonds) +
stat_count(mapping = aes(x = cut))
使用表中数据直接作图,而不统计
ggplot(data = fre) +
geom_bar(mapping = aes(x = Var1, y = Freq), stat = "identity")
不统计count,统计比例(prop)
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, y = ..prop.., group = 1))
2.6 位置关系
# 6.2堆叠直方图
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut,fill=clarity))
# 6.3 并列直方图
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, fill = clarity), position = "dodge")
2.7 坐标系
#翻转coord_flip()
#极坐标系coord_polar()
总结:完整绘图模板
ggplot(data=<DATA>)+
<GEOM_FUNCTION>(
mapping=aes(<MAPPINGS>),
stat=<STAT>,
position=<POSITON>
)+
<COORDINATE_FUNTION>+
<FACET_FUNTION>
ggscatter(iris,x="Sepal.Length",
y="Petal.Length",
color="Species")
#镶嵌图画法,可以赋值的,变量通常为p
p <- ggboxplot(iris, x = "Species",
y = "Sepal.Length",
color = "Species",
shape = "Species",
add = "jitter")
#可以做组间比较
p + stat_compare_means(comparisons = my_comparisons)+
stat_compare_means(label.y = 9)
方法1:ggplot2系列
ggsave(p,filename = "iris_box_ggpubr.png")
或者
ggsave("文件名称.后缀")
#后缀是有意义的
方法2:三段论
pdf("test.pdf") #保存的格式及文件名
... #作图代码
...
dev.off() #画完了,关闭画板
方法3:eoffice
library(eoffice)
topptx(p,"iris_box_ggpubr.pptx") #把一张图保存为PPT
R包patchwork
语法简单,完美兼容ggplot2
代码可运行但是不出图——因为画板被运行
dev.off() #关闭画板,可以多次运行,直到出现null device为止,再重新运行出图代码。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。