R语言可视化 ggplot2—用图层构建图像

创建绘图对象

需要使用ggplot2()函数,两个主要参数

  • 数据
  • 图像属性映射 aes()

通过ggplot创建图形对象

p <- ggplot(diamonds, aes(carat, price, colour = cut))

图层

给图形对象添加一个“点”几何对象(point geom)就会得到一个散点图

p <- p + layer(geom = "point")

注意我们是如何用 + 来添加图层的。该图层使用了默认的数据集和图形属性映射,并且使用了另外两个可选参数的默认值:统计变换和位置调整。下面的图层设定列出了更多可选的参数选项。

手动创建图形对象并添加图层

p <- ggplot(diamonds, aes(x = carat))
p <- p + layer(geom = "bar", 
geom_params = list(fill = "steelblue"), 
stat = "bin", 
stat_params = list(binwidth = 2))
p

在这里插入图片描述

应用“快捷函数”,得到与上例相同的图形

p + geom_histogram(binwidth = 2, fill = "steelblue")

所有这类快捷函数都有相同的形式——以geom_或者stat_开头

geom_XXX(mapping, data,.…, stat, position)
stat_XXX(mapping, data,…, geom, position)

其他参数后续内容会说明

下面将展示ggplot()和qplot()的等价用法

在用ggplot创建的图形对象上添加图层

ggplot(msleep, aes(sleep_rem/sleep_total, awake)) + geom_point()
# 等价于
qplot(sleep_rem/sleep_total, awake, data = msleep)

在这里插入图片描述

也可以给qplot添加图层

qplot(sleep_rem/sleep_total, awake, data = msleep) + geom_smooth()
# 等价于
qplot(sleep_rem/sleep_total, awake, data = msleep, geom = c("point", "smooth"))
# 等价于
ggplot(msleep, aes(sleep_rem/sleep_total, awake)) + geom_point() + geom_smooth()

在这里插入图片描述

例:用不同的数据初始化后添加相同的图层

图层是普通的R对象,所以可以存储到变量里去,这有利于代码避繁就简。例如,一组图形可以先用不同的数据来进行初始化,然后加上相同的图层,如果后面想改变图层,只需要修改一个地方即可。下面的例子创建了一个带有半透明深蓝色回归线的图层。

library(scales)
bestfit <- geom_smooth(method = "lm", se = F, colour = alpha("steelblue", 0.5), size = 2)
qplot(sleep_rem, sleep_total, data = msleep) + bestfit
qplot(awake, brainwt, data = msleep, log = "y") + bestfit
qplot(bodywt, brainwt, data = msleep, log = "xy") + bestfit

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

用%*%添加新的数据集来代替原来的数据集

p <- ggplot(mtcars, aes(mpg, wt, colour = cyl)) + geom_point()
p

在这里插入图片描述

mtcars <- transform(mtcars, mpg = mpg^2)
p %+% mtcars

在这里插入图片描述

图形属性映射

aes函数的参数

aes(x = weight, y = height, colour = age)

这里我们将x坐标映射到weight,y坐标映射到heightcolour映射到age。前两个参数可以省略名字,weightheight会自动匹配到x和y,这和qplot()的用法是一致的。注意,你最好不要使用指定数据集以外的变量(例如diamonds$carat),因为这样无法将绘图所用的数据都封装到一个对象里。

也可以使用变量的函数值作为参数

aes(weight, height, colour = sqrt(age))

在这里插入图片描述

图和图层

如下例所示,默认的图形属性映射可以在图形对象初始化时设定,或者过后用+修改。

p <- ggplot(mtcars)
summary(p)

p <- p + aes(wt, hp)
summary(p)

在这里插入图片描述
在这里插入图片描述

使用默认的参数映射来添加图层

p <- ggplot(mtcars, aes(x = mpg, y = wt))
p + geom_point()

在这里插入图片描述

修改图形属性。用factor(cyl)修改颜色(上),用disp修改y坐标(下)。

p + geom_point(aes(colour = factor(cyl)))
p + geom_point(aes(y = disp))

在这里插入图片描述
在这里插入图片描述

发布了14 篇原创文章 · 获赞 21 · 访问量 2114

猜你喜欢

转载自blog.csdn.net/qq_44658157/article/details/105114399