#散点图
head(mtcars)
plot(mtcars$wt,mtcars$mpg)#基础绘图系统得到的散点图
#ggplot中qplot()函数得到的散点图得同样图
install.packages("ggplot2")
#若两参数向量在同一数据框内
qplot(wt,mpg,data=mtcars)
#等价于
ggplot(mtcars,aes(x=wt,y=mpg))+geom_point()
#折线图(type="l"为线性)
head(pressure)
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()函数绘制折线图
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()
#3、绘制条形图——查看变量值、频数、频率
head(BOD)#查看数据,很简单的数据
barplot(BOD$demand, names.arg=BOD$Time)#这里高度表示demand的值,横轴是time,自动分配,names.arg是在每个条下出现的名称的向量
#用mtcars数据集中cyl绘制频数条形图
table(mtcars$cyl)
barplot(table(mtcars$cyl))
#ggplot绘制条形图(qplot(geom)、ggplot+geom_)
qplot(mtcars$cyl)#mtcars连续型和离散型区别更加明显
qplot(factor(mtcars$cyl))
#qplot(BOD$Time, BOD$demand, geom="bar", stat="identity")#横轴变量是连续型的,会空出没有值的变量,stat="identity"表示原始数据集不作任何统计变换
ggplot(BOD,aes(x=Time,y=demand))+geom_bar(stat="identity")
#qplot(factor(BOD$Time), BOD$demand, geom="bar", stat="identity")#横轴变量改为因子、离散的,不空出
##对于同一数据框里面的变量绘制可以用下面的两种方式
qplot(factor(cyl), data=mtcars)
ggplot(mtcars, aes(x=factor(cyl))) + geom_bar()
#4、绘制直方图——查看一维数据分布特征
hist(mtcars$mpg)#默认间距,高度是每组内频数
hist(mtcars$mpg, breaks=10)#breaks指定组距
#ggplot绘图
qplot(mtcars$mpg)
#同一数据框可以用下面的方式
qplot(mpg, data=mtcars, binwidth=4)#binwidth设置宽度
ggplot(mtcars, aes(x=mpg)) + geom_histogram(binwidth=4)
#5、绘制箱线图——对不同分布比较
head(ToothGrowth)#以该数据集为例,supp是因子变量,len是数值型连续型
plot(ToothGrowth$supp, ToothGrowth$len)#若x是因子,plot自动绘制箱线图
boxplot(len ~ supp, data = ToothGrowth)#用boxplot绘制,指定y~x。是公式语法,效果一致
boxplot(len ~ supp + dose, data = ToothGrowth)#在x轴引入两量的交互,按supp和dose对数据分组,绘制箱线。
##ggplot绘制箱线图
qplot(ToothGrowth$supp, ToothGrowth$len, geom="boxplot")
qplot(supp, len, data=ToothGrowth, geom="boxplot")#针对同一数据框内变量
ggplot(ToothGrowth, aes(x=supp, y=len)) + geom_boxplot()#效果同上
qplot(interaction(ToothGrowth$supp, ToothGrowth$dose),ToothGrowth$len,geom="boxplot")
#interaction函数将分组变量组合在一起,绘制基于多分组变量的箱线图,指定按supp和dose对数据分组
##同一数据框的情况
qplot(interaction(supp,dose),len, data=ToothGrowth, geom="boxplot")
ggplot(ToothGrowth, aes(x=interaction(supp, dose), y=len)) + geom_boxplot()
#6、绘制函数图像——由公式绘制
curve(x^3 - 5*x, from=-4, to=4)#curve函数,第一部分公式,从-4到4的图形
myfun=function(xvar)
{ 1/(1 + exp(-xvar + 10))}
curve(myfun(x), from=0, to=20)#以自定义函数绘图
curve(1-myfun(x), add = TRUE, col = "red")#添加直线
qplot(c(0,20), fun=myfun, stat="function", geom="line")#指示向量作为绘图的x的区间
myfun=function(xvar)
+ { 1/(1 + exp(-xvar + 10))}
ggplot(data.frame(x=c(0,20)),aes(x=x)) + stat_function(fun=myfun,geom="line")#与上面相同