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
Oxboys是牛津大学学生年龄和身高的一个数据集,其中Subject共有26个组,age是标准化后的年龄,Occasion每个Subject有9个样本
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")
网友评论