Rstudio绘图之散点、折线、条形、直方、箱线、函数图

#散点图

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")#与上面相同

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章