许多内容详见书中表格
#初始化
library("ggplot2")
set.seed(1410)
dsmall <- diamonds[sample(nrow(diamonds), 100), ]
ggplot()两个主要参数为:数据和图形属性映射。
这两个参数被设置为默认参数,只有在添加的图层里设定了新参数时,默认值才会被修改
数据参数指定绘图所用的默认数据集(必须是数据框)
映射参数的设定方法与qplot类似,将图形属性与变量名放到函数
aes()中即可
p <- ggplot(diamonds, aes(carat, price, colour = cut))
用+来添加图层
p <- p + layer(geom = "point")
layer(geom, geom_params, stat, stat_params, data, mapping, position)
p <- ggplot(diamonds, aes(x = carat))
p <- p + layer(
geom = "bar",
stat = "bin",
params=list(fill="steelblue",binwidth = 2),
position = "identity"
)
#三种等价形式的写法
gplot(sleep_rem / sleep_total, awake, data = mysleep) + geom_smooth()
#等价于
qplot(sleep_rem / sleep_total, awake, data = mysleep, geom = c("point", "smooth"))
#等价于
ggplot(mysleep, aes(sleep_rem / sleep_total, awake)) + geom_point() + geom_smooth()
一组图形可以用不同的数据来进行初始化,然后加上相同的图层,若后面想修改可以只修改一处
library(scales)
bestifit <- geom_smooth(method = "lm", se = FALSE,
color = alpha("steelblue", 0.5), size = 2)
qplot(sleep_rem, sleep_total, data = msleep) + bestifit
qplot(awake, brainwt, data = msleep, log = "y") + bestifit
qplot(bodywt, brainwt, data = msleep, log = "xy") + bestifit
用%+%来添加新的数据集以代替原来的数据集
p <- ggplot(mtcars, aes(mpg, wt, color = cyl)) + geom_point()
mtcars <- transform(mtcars, mpg = mpg^2)
p %+% mtcars
数据以副本而不是引用形式存储到图形对象中,这样即使数据改变了,绘图也不会改变
ggplot2的对象是自含型,可以被储存((save()))到磁盘上,之后可以直接加载运行(load())
aes()函数用来将数据变量映射到图形中
注意:最好不要使用指定数据集以外的变量,这样无法将绘图所用的数据都封装到一个对象里
也可以使用变量的函数值作为参数
每个aes()函数里的变量都必须包含于默认数据集或者图层数据集中,保证了ggplot2对象都是自含型
p <- ggplot(mtcars, aes(x = mpg, y = wt))
factor(cyl)修改颜色
p <- p + geom_point(aes(color = factor(cyl)))
y = disp修改y坐标,但一个图层里设定的图形属性映射只对该图层起作用,否则坐标标签以及图例标题都会根据图形对象的默认设置而生成
p <- p + geom_point(aes(y = disp))
分组变量,group
library("nlme")
p <- ggplot(Oxboys, aes(age, height, group = Subject)) + geom_line()
修改默认分组
boysbox <- ggplot(Oxboys, aes(Occasion, height)) + geom_boxplot()
boysbox + geom_line(aes(group = Subject, color = "#3366FF"))
统计变换 stat,以某种方式对数据信息进行汇总
统计变换可以将输入的数据集看做输入,将返回的数据集作为输出
统计变换生成的变量可以直接被调用,但是在调用时需以..variable..形式,如..density..
位置调整,即对该层中的元素位置进行微调
dodge:避免重叠,并排放置
fill:堆叠图形元素并将高度标准化为1
identity:不作任何调整
jitter:给点添加扰动避免重合
stack:将图形元素堆叠起来,与fill的区别在于没有标准化高度
unique()数据去重
unique对于一个向量管用,对于matrix、data frame那些就不管用了。
R中默认的是fromLast=FALSE,即若样本点重复出现,则取首次出现的,否则去最后一次出现的。
列名不变,去掉重复样本值之后的行名位置仍为原先的行名位置。