图形图层语法

  • 耗油量数据
  • 散点图
  • 散点图+回归线
  • 散点图+回归线+分面
  • 四种不同标度的图例(大小、颜色、形状、颜色)
  • 坐标系
  • 保存图形对象
  • 读入图形对象
  • 将图片保存成png格式


library(ggplot2)

耗油量数据

R语言绘制散点图 r语言绘制散点图回归_图层

散点图

发动机排量(以升为单位displ)对高速公路耗油量(英里每加仑hwy)散点图。

点根据汽缸数目着色。

该图可以发现影响燃油经济性最重要的因素:发动机排量大小。

qplot(displ, hwy, data = mpg, colour = factor(cyl))

R语言绘制散点图 r语言绘制散点图回归_图层_02

散点图+回归线

更复杂的图形一般没有特定的名称。这幅图在上图的基础上对每个组添加了回归线。这个图应该叫什么名字呢?

qplot(displ, hwy, data = mpg, colour = factor(cyl)) + 
  geom_smooth(data = subset(mpg, cyl != 5), method = "lm")

subset(mpg, cyl! = 5)的意思是不画cyl = 5 的回归线

画了两条直线原因是factor(cyl)

R语言绘制散点图 r语言绘制散点图回归_坐标变换_03

散点图+回归线+分面

一个含有分面和多个图层的复杂图形

qplot(displ, hwy, data = mpg, facets = . ~ year) + geom_smooth()

R语言绘制散点图 r语言绘制散点图回归_坐标变换_04

四种不同标度的图例(大小、颜色、形状、颜色)

从左到右依次是:连续型变量映射到大小和颜色,离散型变量映射到形状和颜色。

x <- 1:10
y <- factor(letters[1:5])
qplot(x, x, size = x)
qplot(x, x, colour = x)
qplot(y, y, shape = y)
qplot(y, y, colour = y)

R语言绘制散点图 r语言绘制散点图回归_R语言绘制散点图_05


R语言绘制散点图 r语言绘制散点图回归_R语言绘制散点图_06


R语言绘制散点图 r语言绘制散点图回归_坐标变换_07


R语言绘制散点图 r语言绘制散点图回归_R语言绘制散点图_08

坐标系

坐标系,或简称为coord,可将对象的位置映射到图形平面上。位置通常由两个坐标(x,y)决定,但是有时可能需要三个或更多(尽管目前还不能在ggplot2中实现)。笛卡尔坐标系是最常用的二维坐标系,极坐标系和各种地图投影则用得相对少一些。

坐标系可以同时影响所有的位置变量。与标度不同,坐标系还可以改变几何对象的外观。例如,在极坐标系中,条形看起来像扇形。另外,标度变换是在统计变换前执行的,而坐标变换是在此之后执行的。坐标变换的具体效果请见接下来的文章。

三种不同坐标系的坐标轴和网格线:笛卡尔(Cartesian)、半对数(semi-log)和极坐标系(polar)。极坐标系展示了非笛卡尔坐标系的缺点:很难画好坐标轴。

x1 <- c(1, 10)
y1 <- c(1, 5)
p <- qplot(x1, y1, geom = "blank", xlab = NULL, ylab = NULL) + theme_bw()
p

R语言绘制散点图 r语言绘制散点图回归_R语言绘制散点图_09

p + coord_trans(y = "log10")

R语言绘制散点图 r语言绘制散点图回归_图层_10

p + coord_polar()

R语言绘制散点图 r语言绘制散点图回归_坐标变换_11

p <- qplot(displ, hwy, data = mpg, colour = factor(cyl))
summary(p)

R语言绘制散点图 r语言绘制散点图回归_图例_12

保存图形对象

save(p, file = "plot.rdata")

读入图形对象

load("plot.rdata")

将图片保存成png格式

ggsave("plot.png", width = 5, height = 5)