作图
base(plot函数)
ggplot2
ggpubr
拼图:patchwork
导出
经典三段论
ggsave
eoffice-topptx
基础包-绘图函数
低级绘图函数不能单独运行,必须依托高级绘图函数,可以对画出来的图添加细节。
ggplot2
1.入门级绘图模板
ggplot(data = <DATA>) +
<GEOM_FUNCTION>(mapping = aes(<MAPPINGS>))
特殊语法:列名不带引号,行末写加号
2.属性设置(颜色、大小、透明度、点的形状、线型等)
2.1 手动设置
2.2 映射:按照数据框的某一列来定义图的某个属性
映射与手动设置的比较
映射:根据数据的某一列的内容分配颜色
手动设置:把图形设置为一个或n个颜色,与数据内容无关
Q1:自行指定映射的颜色
ggplot(data = iris)+
geom_point(mapping = aes(x = Sepal.Length,
y = Petal.Length,
color = Species))+
scale_color_manual(values = c("blue","grey","red"))
#使用配色包配色
ggplot(data = iris)+
geom_point(mapping = aes(x = Sepal.Length,
y = Petal.Length,
color = Species))+
scale_color_brewer(palette = "Set1")
Q2区分color和fill两个属性
1 空心形状和实心形状都用color设置颜色
ggplot(data = iris)+ geom_point(mapping = aes(x = Sepal.Length, y = Petal.Length, color = Species), shape = 17) #17号,实心的例子
ggplot(data = iris)+
geom_point(mapping = aes(x = Sepal.Length,
y = Petal.Length,
color = Species),
shape = 2) #2号,空心的例子
2 既有边框又有内心,才需要color和fill两个参数
ggplot(data = iris)+
geom_point(mapping = aes(x = Sepal.Length,
y = Petal.Length),
shape = 24,
color = "red",
fill = "yellow") #24号,双色的例子
2.3 几何对象
几何对象可以叠加
#局部设置和全局设置
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.4 位置
确保横纵坐标上不同点不会重叠到一块去
ggplot(data = iris,mapping = aes(x = Species,
y = Sepal.Width,
fill = Species)) +
geom_boxplot()+
#geom_point(position = "jitter")
geom_jitter()
2.5 坐标系
coord_flip()翻转坐标系
2.6 主题
theme_bw()改主题,去掉灰色的格子
图层叠放顺序:先写先放(底层)
ggpubr
library(ggpubr)
p = ggboxplot(iris, x = "Species", y = "Sepal.Length",
color = "Species", shape = "Species",add = "jitter")
p
my_comparisons <- list( c("setosa", "versicolor"),
c("setosa", "virginica"),
c("versicolor", "virginica") )
p + stat_compare_means(comparisons = my_comparisons,
aes(label = after_stat(p.signif)))
图片保存
ggplot系列:
ggsave(p,filename = "iris_box_ggpubr.png")
eoffice包: 导出为ppt,全部元素都是可编辑模式
library(eoffice)
topptx(p,"iris_box_ggpubr.pptx")
dev.off()
找画图代码的途径
- 搜狗微信搜索公众号教程
- STHDA网站http://www.sthda.com/english/搜索,有示例代码和示例数据
画图思维