热线电话:13121318867

登录
2018-11-02 阅读量: 909
ggplot2--分面与几何对象

分面

添加额外变量的一种方法是使用图形属性。另一种方法是将图分割成多个分面,即可以显

示数据子集的子图。这种方法特别适合添加分类变量。

要想通过单个变量对图进行分面,可以使用函数 facet_wrap()。其第一个参数是一个公

式,创建公式的方式是在 ~ 符号后面加一个变量名(这里所说的“公式”是 R 中的一种数

据结构,不是数学意义上的公式)。传递给 facet_wrap() 的变量应该是离散型的。

ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_wrap(~ class, nrow = 2)
要想通过两个变量对图进行分面,需要在绘图命令中加入函数 facet_grid()。这个函数的
第一个参数也是一个公式,但该公式包含由 ~ 隔开的两个变量名。
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_grid(drv ~ cyl)

如果不想在行或列的维度进行分面,你可以使用 . 来代替变量名,例如 + facet_grid(. ~

cyl)。

几何对象

几何对象是图中用来表示数据的几何图形对象。我们经常根据图中使用的几何对象类型来

描述相应的图。例如,条形图使用了条形几何对象,折线图使用了直线几何对象,箱线图

使用了矩形和直线几何对象。散点图打破了这种趋势,它们使用点几何对象。我们可以使用不同的几何对象来表示同样的数据。

ggplot2 提供了 30 多种几何对象,其扩展包甚至提供了更多(可以在 https://www.ggplot2-

exts.org 查看更多样例)。如果想全面地了解这些对象,最好的方式是学习 ggplot2 速查表

(参见 http://rstudio.com/cheatsheets)。如果想掌握更多关于某个几何对象的知识,那么可以

使用帮助,如 ?geom_smooth。

和 geom_smooth() 一样,很多几何对象函数使用单个几何对象来表示多行数据。你可以将

这些几何对象的 group 图形属性设置为一个分类变量,这样 ggplot2 就会为这个分类变量

的每个唯一值绘制一个独立的几何对象。实际上,只要将一个图形属性映射为一个离散变

量(如上个示例中的 linetype), ggplot2 就会自动对数据进行分组来绘制多个几何对象。

这个功能非常方便,因为按照图形属性的这种分组不用添加图例,也不用为几何对象添加

区分特征:

ggplot(data = mpg) +
geom_smooth(mapping = aes(x = displ, y = hwy))
ggplot(data = mpg) +
geom_smooth(mapping = aes(x = displ, y = hwy, group = drv))
ggplot(data = mpg) +
geom_smooth(
mapping = aes(x = displ, y = hwy, color = drv),
show.legend = FALSE
)

0.0000
1
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子