Day6 画图

作图

base(plot函数)

ggplot2

ggpubr

拼图:patchwork

导出

经典三段论

ggsave

eoffice-topptx

基础包-绘图函数

基础包-绘图函数

低级绘图函数不能单独运行,必须依托高级绘图函数,可以对画出来的图添加细节。

ggplot2

1.入门级绘图模板

代码语言:R
复制
ggplot(data = <DATA>) +
<GEOM_FUNCTION>(mapping = aes(<MAPPINGS>))

特殊语法:列名不带引号,行末写加号

2.属性设置(颜色、大小、透明度、点的形状、线型等)

2.1 手动设置
2.2 映射:按照数据框的某一列来定义图的某个属性

映射与手动设置的比较

映射:根据数据的某一列的内容分配颜色

手动设置:把图形设置为一个或n个颜色,与数据内容无关

Q1:自行指定映射的颜色

代码语言:R
复制
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设置颜色

代码语言:R
复制
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两个参数

代码语言:R
复制
ggplot(data = iris)+
geom_point(mapping = aes(x = Sepal.Length,
y = Petal.Length),
shape = 24,
color = "red",
fill = "yellow") #24号,双色的例子
2.3 几何对象

几何对象可以叠加

代码语言:R
复制
#局部设置和全局设置
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 位置

确保横纵坐标上不同点不会重叠到一块去

代码语言:R
复制
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

代码语言:R
复制
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,全部元素都是可编辑模式

代码语言:R
复制
library(eoffice)
topptx(p,"iris_box_ggpubr.pptx")
dev.off()

找画图代码的途径

  1. 搜狗微信搜索公众号教程
  2. STHDA网站http://www.sthda.com/english/搜索,有示例代码和示例数据

    画图思维