首页 > 代码库 > R语言 qplot

R语言 qplot

qplot 的意思是quick plot,是属于ggplot2包的一部分,使用时需先加载包。

qplot参数:

qplot(x, y = NULL, ..., data, facets = NULL, margins = FALSE,
      geom = "auto", xlim = c(NA, NA), ylim = c(NA, NA), log = "",
      main = NULL, xlab = deparse(substitute(x)),
      ylab = deparse(substitute(y)), asp = NA, stat = NULL, position = NULL)

其中:x和y表示x轴与y轴
facets表示分页:row_var~col_var
geom表示几何对象:
##geom = "point" 散点图
##geom = "smooth" 拟合平滑曲线
##geom = "path" 连线(任意方向)
##geom = "line" 连线(从左到右)

##一维数据
##连续变量
##geom = "histogram" 直方图
##geom = "freqpoly" 频率多边图
##geom = "density" 密度曲线
##离散变量
##geom = "bar" 条形图
xlim和ylim表示x轴与y轴的取值范围
log表示一个字符型向量,说明哪一个坐标轴应该取对数。(log="x"表示对x轴取对数,log="xy"表示对xy轴取的对数)
main表示图形的主标题,可以是字符串(main="plot title")或者一个表达式。
xlab与ylab表示x轴和y轴的文字标签,参数与main一样
...

 

测试:

#install.packages("ggplot2")
library(ggplot2)
##使用数据集diamonds
head(diamonds)
set.seed(1410) ##让样本可重复
dsmall<- diamonds[sample(nrow(diamonds),100),] ##抽取100行

qplot(carat , price , data = http://www.mamicode.com/diamonds) ##观察图形成指数增长"point"    散点图
##geom = "smooth"   拟合平滑曲线
##geom = "path"     连线(任意方向)
##geom = "line"     连线(从左到右)

##一维数据
##连续变量
##geom = "histogram" 直方图
##geom = "freqpoly"  频率多边图
##geom = "density"   密度曲线
##离散变量
##geom = "bar"   条形图


##平滑曲线
##如果散点图中的数据太多,则不容易看出趋势,此时可以添加一条平滑曲线。
qplot(carat ,  price , data = http://www.mamicode.com/dsmall , geom = c("point","smooth")) ##注意几何对象会根据c()的顺序进行堆叠
qplot(carat , price , data = http://www.mamicode.com/diamonds , geom = c("smooth","point")) ##先画smooth会使其被覆盖

##曲线平滑程度,使用参数span控制,取值0(很不平滑)~ 1(很平滑)
qplot(carat ,  price , data = http://www.mamicode.com/dsmall , geom = c("point","smooth") , span = 0.2)  
qplot(carat ,  price , data = http://www.mamicode.com/dsmall , geom = c("point","smooth") , span = 1)  

##平滑曲线的灰色区间为置信区间
qplot(carat ,  price , data = http://www.mamicode.com/dsmall , geom = c("point","smooth") , se = FALSE)  ##如果不想绘制标准误差,可以使用se=FALSE

##平滑器的使用
##n小于等于1000时,默认使用method = "loess",使用的是局部回归的方法。
##n大于1000时,默认使用method = "gam",formula=y~s(x)来调用mgcv包拟合一个广义可加模型。

qplot(carat ,  price , data = http://www.mamicode.com/dsmall , geom = c("point","smooth") , method ="lm" ) ##使用现行模拟,得到一条直线

##rlm与lm类型,当使用更稳健的拟合算法,使得结果对异常值不敏感。(需要加载MASS包)
library("MASS")
qplot(carat ,  price , data = http://www.mamicode.com/dsmall , geom = c("point","smooth") , method ="rlm" )

##箱线图和扰动点图
##如果一个数据集中包含了一个分类变量和一个或多个变量,并且想知道连续变量会如何随着分类变量水平变化而变化。
qplot(color , price/carat , data = http://www.mamicode.com/diamonds , geom ="jitter" , alpha = I(1/5) ) ##扰动点图
qplot(color , price/carat , data = http://www.mamicode.com/diamonds , geom ="jitter" , alpha = I(1/50)) ##降低透明度,查看数据集中的区域

qplot(color , price/carat , data = http://www.mamicode.com/diamonds , geom ="boxplot") ##箱线图(显示4分位点以及异常点)
qplot(color , price/carat , data = http://www.mamicode.com/diamonds , geom ="boxplot" , colour = color)  ##修改框架颜色
qplot(color , price/carat , data = http://www.mamicode.com/diamonds , geom ="boxplot" , fill = color)  ##修改填充


##直方图和密度曲线图
##直方图和密度曲线可以展示单个变量的分布,相对与箱线图而言,他们提供了更多的关于单个分布的信息,但他们不太容易在不同组之间进行比较
qplot(carat , data = http://www.mamicode.com/diamonds , geom ="histogram" ) ##直方图
qplot(carat , data = http://www.mamicode.com/diamonds , geom ="density") ##密度图
qplot(carat , data = http://www.mamicode.com/diamonds , geom ="density" , color = color) ##密度图,设置颜色

##对于密度曲线而言,adjust参数控制了曲线的平滑程度(adjust取值越大,曲线越平滑)
qplot(carat , data = http://www.mamicode.com/diamonds , geom ="density" , adjust = 1)
qplot(carat , data = http://www.mamicode.com/diamonds , geom ="density" , adjust = 2)
qplot(carat , data = http://www.mamicode.com/diamonds , geom ="density" , adjust = 3)

##对于直方图而言,binwith参数通过设定组距来调节平滑度
##在直方图中,应该尝试多种组距,当组距较大时,图形能反映数据的总体特征;组距较小时,则能显示出更多的细节
qplot(carat , data = http://www.mamicode.com/diamonds , geom ="histogram" , binwidth =1 , xlim =c(0,3))
qplot(carat , data = http://www.mamicode.com/diamonds , geom ="histogram" , binwidth =0.1 , xlim =c(0,3))
qplot(carat , data = http://www.mamicode.com/diamonds , geom ="histogram" , binwidth =0.01 , xlim =c(0,3))

##条形图,在离散变量的情形下,条形图与直方图相类似
qplot(color , data = http://www.mamicode.com/diamonds , geom ="bar")
qplot(color , data =http://www.mamicode.com/diamonds , geom ="bar" , weight = carat) + scale_y_continuous("carat") ##按wight=carat进行加权,展示了每种颜色的总量

##线条图与路径图(一般用于时间序列)
str(economics)
qplot(date , unemploy/pop , data = http://www.mamicode.com/economics ,geom ="line")
qplot(date , uempmed , data = http://www.mamicode.com/economics , geom ="line")

##分组,图形的分组可以利用图形属性(颜色和形状)进行,可以将所有组绘制在同一张图中,也可以进行分面
##分面:可以通过形如row_var~col_var的表达式进行指定,如果只想要指定一行或一列可以使用.作为占位符,例如row_var~.会创建一个单列多行的图形矩阵
qplot(carat , data = http://www.mamicode.com/diamonds , facets = color~. , "histogram" , 
      binwidth =0.1 , 
      xlim = c(0,3)
      )

qplot(carat , data = http://www.mamicode.com/diamonds , facets = color~cut , "histogram" , 
      binwidth =0.1 , 
      xlim = c(0,3)
)

##..density..表示将密度而不是频数映射到y轴
qplot(carat , ..density.. , data = http://www.mamicode.com/diamonds , facets = color~. , "histogram" , 
      binwidth =0.1 , 
      xlim = c(0,3)
)

  

 

R语言 qplot