# read.dta():Stata
# 快速探索数据
# 2.1 绘制散点图
# 使用plot()函数可以绘制散点图
plot(mtcars$wt,mtcars$mpg)
# 对于ggplot2()系统,可用qplot()函数
library(ggplot2)
qplot(mtcars$wt,mtcars$mpg)
# 如果绘图所用的两个参数包含在同一个数据框内,则可以运行下面的命令
qplot(wt,mpg,data = mtcars)
# 或者
ggplot(mtcars,aes(x=wt,y=mpg))+geom_point()
# 2.2 绘制折线图
# 使用plot()函数绘制折线图时需向其传递一个包含x值的向量和一个包含y值的向量,并使用参数type="l"
plot(pressure$temperature,pressure$pressure,type = "l")
# 如果要向图形中添加数据点或者多条折线,则需先用plot()函数绘制第一条折线,再通过points()函数和lines()函数分别添加数据点和更多折线
plot(pressure$temperature,pressure$pressure,type = "l")
points(pressure$temperature,pressure$pressure)
lines(pressure$temperature,pressure$pressure/2,col="red")
points(pressure$temperature,pressure$pressure/2,col="red")
# 在ggplot2中,可以使用qplot()函数并将参数设定为geom="line"
library(ggplot2)
qplot(pressure$temperature,pressure$pressure,geom = "line")
qplot(temperature,pressure,data = pressure,geom = "line")
ggplot(pressure,aes(x=temperature,y=pressure))+geom_line()
# 添加数据点
qplot(temperature,pressure,data = pressure,geom = c("line","point"))
ggplot(pressure,aes(x=temperature,y=pressure))+geom_line()+geom_point()
# 2.3 绘制条形图
# 对变量的值绘制条形图,使用barplot()函数,并向其传递两个向量作为参数,第一个向量用来设定条形的高度,第二个向量用来设定每个条形对应的标签(可选)
# 如果向量中的元素已被命名,则系统会自动使用元素的名字作为条形标签
barplot(BOD$demand,names.arg = BOD$Time)
# 要计算向量中各个类别的频数,可以使用table()函数
table(mtcars$cyl)
# 生成频数表
barplot(table(mtcars$cyl))
# 对于ggplot2系统,使用qplot()函数,绘制变量值的条形图时需将参数设定为geom="bar"和stat="identity"
library(ggplot2)
# qplot(BOD$Time,BOD$demand,geom = "bar", stat = "identity") 报错!!!
# qplot(factor(BOD$Time),BOD$demand,geom = "bar",stat = "identity")
# 注意变量x分别为连续取值和离散取值时输出结果的差异
qplot(mtcars$cyl)
qplot(factor(mtcars$cyl))
# 如果参数向量包含在同一个数据框内
# qplot(Time,demand,data = BOD,geom = "bar",stat = "identity")
ggplot(BOD,aes(x=Time,y=demand))+geom_bar(stat = "identity")
# 频数条形图
qplot(factor(cyl),data = mtcars)
ggplot(mtcars,aes(x=factor(cyl)))+geom_bar()
# 2.4 绘制直方图
# 使用hist()函数绘制直方图
hist(mtcars$mpg)
# 通过breaks参数指定大致组距
hist(mtcars$mpg,breaks = 10)
# 对于ggplot2系统,使用qplot()函数
qplot(mtcars$mpg)
library(ggplot2)
qplot(mpg,data = mtcars,binwidth=4)
ggplot(mtcars,aes(x=mpg))+geom_histogram(binwidth = 4)
# 2.5绘制箱线图
# 使用plot()函数绘制箱线图时向其传递两个向量:x和y。当x为因子型变量时,默认绘制箱线图
plot(ToothGrowth$supp,ToothGrowth$len)
# 公式语法
boxplot(len~supp,data = ToothGrowth)
# 在x轴上引入两变量的交互
boxplot(len~supp+dose,data = ToothGrowth)
# 对于ggplot2包,使用qplot()函数,参数设定为geom="boxplot"
library(ggplot2)
qplot(ToothGrowth$supp,ToothGrowth$len,geom = "boxplot")
qplot(supp,len,data = ToothGrowth,geom = "boxplot")
ggplot(ToothGrowth,aes(x=supp,y=len))+geom_boxplot()
# 使用interaction()函数将分组变量组合在一起也可以绘制基于多组变量的箱线图
# 使用三个独立的向量参数
qplot(interaction(ToothGrowth$supp,ToothGrowth$dose),ToothGrowth$len,geom = "boxplot")
# 也可以以数据框中的列作为参数
qplot(interaction(supp,dose),len,data=ToothGrowth,geom = "boxplot")
ggplot(ToothGrowth,aes(x=interaction(supp,dose),y=len))+geom_boxplot()
# 2.6 绘制函数图像
# 使用curve()函数绘制函数图像,使用时需向其传递一个关于变量x的表达式
curve(x^3-5*x,from = -4,to=4)
# 将参数设置为add=TRUE可以向已有图形添加函数图像
# 绘制用户自定义的函数图像
myfun <- function(xvar){
1/(1+exp(-xvar+10))
}
curve(myfun(x),from = 0,to=20)
# 添加直线
curve(1-myfun(x),add = TRUE,col="red")
# 对于ggplot2,使用qplot()函数。使用时需设定stat="function"和geom="line",并向其传递一个输入和输出皆为数值型向量的函数
library(ggplot2)
# 将x轴的取值范围设定为0到20
qplot(c(0,20),fun=myfun,stat = "function",geom = "line")
ggplot(data.frame(x=c(0,20)),aes(x=x))+stat_function(fun = myfun,geom = "line")