2.1绘制散点图
基础绘图:
plot(data$x, data$y)
ggplot2:
qplot(data$x, data$y) #提前安装,加载ggplot2
qplot(x, y, data =...)
#等价于
ggplot(data, aes(x, y)) + geom_point()
2.2绘制折线图
基础绘图:
plot(x, y, type = "1")
加数据点:points(x, y)
更多折线:lines(x, y', col)
ggplot2:
qplot(data$x, data$y, geom = "line")
qplot(x, y, data, geom = "line")
#等价于
ggplot(data, aes(x, y)) + geom_line()
加数据点:
ggplot(data, aes(x, y)) + geom_line()+geom_point()
qplot(x, y, data, geom = c("line", "point"))
2.3绘制条形图
基础绘图:
barplot(data$x, name.arg) #第一个arg是高度,第二个是每个条形对应的标签(可选)
条形图也能表示分组中各个element的频数。这和直方图类似,但是x为离散取值,直方图是连续取值。
要计算向量中各个类别的函数,可以使用table()函数。
绘制频数条形图
barplot(table(data$x))
ggplot2:
qplot(data$x, data$y, geom = "bar", stat = "identity")
qplot(factor(data$x), data$y, geom = "bar", stat = "identity")
ggplot(data, aes(x, y)) + geom_bar(stat = "identity")
注意:第一条命令行中data$x是横轴的变量名,但是如果是数值,那么是连续型的,所以会出现条形不落在数字上的情况。第二条命令行中转化为因子型变量,令系统将其视作离散值,这样每个条形都有对应的标签。
绘制频数条形图
qplot(data$y)
qplot(factor(data$y))
ggplot(data, aes(x = factor(y))) + geom_bar()
2.4绘制直方图
直方图(histogram)是数值数据分布的精确图形表示。 这是一个连续变量(定量变量)的概率分布的估计,并且被卡尔·皮尔逊(Karl Pearson)首先引入。它是一种条形图。 为了构建直方图,第一步是将值的范围分段,即将整个值的范围分成一系列间隔,然后计算每个间隔中有多少值。 这些值通常被指定为连续的,不重叠的变量间隔。 间隔必须相邻,并且通常是(但不是必须的)相等的大小。
基础绘图:
使用hist()绘制直方图,传递一个向量,通过breaks参数指定大致组距
hist(data$x, breaks = 10) #纵轴Frequency
ggplot2:
qplot(x, data, binwidth)
ggplot(data, aes(x)) + geom_histogram(binwidth)
2.5绘制箱线图
使用plot()函数绘制箱线图时向其传递两个向量x,y。x为factor时,默认绘制箱线图。
#公式语法
boxplot(y ~ x, data)
boxplot(y ~ x1 + x2, data)
如果不是基于多分组变量的箱线图,用ggplot2时,只需要把参数设定为geom = "boxplot",其他一样
如果是基于多分组变量的箱线图,用ggplot2时,需要使用interaction()
ggplot(data, aes(x = interaction(x1, x2), y)) + geom_boxplot()
运行?boxplot.base和?geom_boxplot,查看两者在计算分位数的方法上的差异。
2.6绘制函数图像
使用curve()函数绘制函数图像
curve(x ^ 3 - 5 * x, from = -4, to = 4)
curve(function, add = TRUE, col)
qplot(c(0,20), fun, stat = "function", geom = "line")
ggplot(data.frame(x = c(0,20)), aes(x = x)) + stat_function(fun, geom = "line")
以上更详细的介绍出现在以后的章节。本章节的目的是介绍R提供的基本的绘图工具,并将它们与ggplot2包做比较。