1、Aesthetic mappings
library(ggplot2)
p <- ggplot(mtcars, aes(x = mpg, y = wt))
p + geom_point()

p + geom_point(aes(colour = factor(cyl))) #cyl为整型
#Add aes(colour = factor(cyl)) =====> aes(x = mpg, y = wt, colour = factor(cyl))

p + geom_point(aes(y = disp)) #将y轴的数据更改为disp,但要注意y轴标签名不会更改
#Override aes(y = disp) ======> aes(x = mpg, y = disp) 覆盖
#Remove aes(y = NULL) ======> aes(x = mpg) 删除

关于颜色设置有两种方式: Setting vs Mapping
Mapping: aes(colour = cut)
Setting: colour = "blue"
# Setting
p + geom_point(colour = "green")

# Mapping
p + geom_point(aes(colour = "green"))

# Mapping
#倘若希望为指定的颜色
p + geom_point(aes(colour = I("green")))
# 因为Mapping默认的是一组向量,颜色为内部默认的颜色

分组 grouping
分组和分面都用于对数据分组,便于观察各自的规律、趋势和模式,不同的是,分组是把图形绘制到一个大的图形中,通过美学特征来区分,而分面是把图形绘制到不同的网格中。
library(nlme) #nlme包中有许多数据集
dat <- Oxboys

p <- ggplot(dat, aes(age, height, group = Subject)) + geom_line()
p
#按照Subject来分组,那些下面应该有26条线,注意分组的依据应当是因子类型

p <- ggplot(dat, aes(age, height, group = 1)) + geom_line()
p
# group = 1则不论1改为多大的值,下图中都只会有一条线,相当于分为一组,不加group和group = 1等同

#Different groups on different layers 即将在不同的图层中设置分组
p <- ggplot(dat, aes(age, height, group = Subject)) + geom_line()
p + geom_smooth(aes(group = Subject), method = "lm", se = F)

p <- ggplot(dat, aes(age, height, group = Subject)) + geom_line()
p + geom_smooth(aes(group = 1), method = "lm", se = F, size = 2)
#不加group和group = 1等同 ,相当于把所有组当作一个整体来构建smooth

p <- ggplot(dat, aes(age, height, group = 1)) + geom_line()
p + geom_smooth(aes(group = Subject), method = "lm", se = F)

p <- ggplot(dat, aes(age, height, group = 1)) + geom_line()
p + geom_smooth(aes(group = 1), method = "lm", se = F)

boysbox <- ggplot(Oxboys, aes(Occasion, height)) + geom_boxplot() #Occasion为因子类型
boysbox

boysbox + geom_line(aes(group = Subject),colour = "green")

2、Position adjustments
ggplot(diamonds,
aes(clarity, fill = cut)) + geom_bar(position = "stack")

ggplot(diamonds,
aes(clarity, fill = cut)) + geom_bar(position = "fill")

ggplot(diamonds,
aes(clarity, fill = cut)) + geom_bar(position = "dodge")

ggplot(diamonds,
aes(clarity, price, colour = cut)) + geom_point(position = "jitter")

ggplot(diamonds,
aes(clarity, price, colour = cut)) + geom_point(position = "identity")

网友评论