ta = "y")
6、分面(facet)
Facets是表现分类变量的一种方式。 先将数据划分为多个子集, 然后将每个子集数据绘制到页面,在同一个页面上摆放多幅图形
ggplot2提供了2种分面类型:网格型(facet_grid)和封装型(facet_wrap)。网格型生成的是一个2维的面板网格, 面板的行与列通过变量来定义, 本质是2维的; 封装型先生成一个1维的面板条块, 然后再分装到2维中, 本质是1维的。最直接的分面使用方法是 facet_grid()函数,只需要规定使用标点符号的行和列上使用的分类变量。
当一个分类变量具有多个等级(level),但并非所有level都存在于另一个变量的子集中,可以丢弃不用的level。
示例:设置scale = "free_y" 和 space = "free_y" 移除没有数据的行。.
ggplot(mamsleep, aes(x = time, y = name, col = sleep)) +
geom_point() +
facet_grid(vore ~ ., scale = "free_y", space = "free_y")
7、Theme(主题)
是跟数据无关的可视元素,数据可视化的最后一步,使图形美观。
按作用对象分成三种类型及对应的函数:
Rectangle(矩形区域):element_rect()
Line(线条): element_text()
text (文字):element_line()
在图形页面中的不同图框之间存在空白,分面(facet)之间、x轴标签和图框之间,图框与整个面板背景之间都存在着空白。示例如下:
# 增加分面之间的空白
library(grid)
z + theme(panel.spacing.x = unit(2, "cm"))
#移除多余的图形边距空白
z + theme(panel.spacing.x = unit(2, "cm"),
plot.margin = unit(c(0,0,0,0), "cm"))
管理、更新和保存主题
theme_update() 在原图层主题设置上进行更新。
theme_set(old) 重新装载图层设置。
应用示例:
# Theme layer saved as an object, theme_pink
theme_pink <- theme(panel.background = element_blank(),
legend.key = element_blank(),
legend.background = element_blank(),
strip.background = element_blank(),
plot.background = element_rect(fill = myPink, color = "black", size = 3),
panel.grid = element_blank(),
axis.line = element_line(color = "black"),
axis.ticks = element_line(color = "black"),
strip.text = element_text(size = 16, color = myRed),
axis.title.y = element_text(color = myRed, hjust = 0, face = "italic"),
axis.title.x = element_text(color = myRed, hjust = 0, face = "italic"),
axis.text = element_text(color = "black"),
&nb