R语言 qplot
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 = diamonds) ##观察图形成指数增长 qplot(log(carat) , log(price) , data = diamonds) ##将数据对数化 qplot(carat , price , data = dsmall , colour =color) ##set颜色 qplot(carat , price , data = dsmall , shape =cut) ##设置形状 qplot(carat , price , data = diamonds) ##观察图形重叠度太高,因此设置透明度,使重叠度高的地方变深色 qplot(carat , price , data = diamonds , alpha = I(1/10)) ##其中1/10表示经过10次重叠之后颜色变得不透明 qplot(carat , price , data = diamonds , alpha = I(1/100)) qplot(carat , price , data = diamonds , alpha = I(1/200)) ##qplot的集合对象 ##二维数据 ##geom = "point" 散点图 ##geom = "smooth" 拟合平滑曲线 ##geom = "path" 连线(任意方向) ##geom = "line" 连线(从左到右) ##一维数据 ##连续变量 ##geom = "histogram" 直方图 ##geom = "freqpoly" 频率多边图 ##geom = "density" 密度曲线 ##离散变量 ##geom = "bar" 条形图 ##平滑曲线 ##如果散点图中的数据太多,则不容易看出趋势,此时可以添加一条平滑曲线。 qplot(carat , price , data = dsmall , geom = c("point","smooth")) ##注意几何对象会根据c()的顺序进行堆叠 qplot(carat , price , data = diamonds , geom = c("smooth","point")) ##先画smooth会使其被覆盖 ##曲线平滑程度,使用参数span控制,取值0(很不平滑)~ 1(很平滑) qplot(carat , price , data = dsmall , geom = c("point","smooth") , span = 0.2) qplot(carat , price , data = dsmall , geom = c("point","smooth") , span = 1) ##平滑曲线的灰色区间为置信区间 qplot(carat , price , data = 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 = dsmall , geom = c("point","smooth") , method ="lm" ) ##使用现行模拟,得到一条直线 ##rlm与lm类型,当使用更稳健的拟合算法,使得结果对异常值不敏感。(需要加载MASS包) library("MASS") qplot(carat , price , data = dsmall , geom = c("point","smooth") , method ="rlm" ) ##箱线图和扰动点图 ##如果一个数据集中包含了一个分类变量和一个或多个变量,并且想知道连续变量会如何随着分类变量水平变化而变化。 qplot(color , price/carat , data = diamonds , geom = "jitter" , alpha = I(1/5) ) ##扰动点图 qplot(color , price/carat , data = diamonds , geom = "jitter" , alpha = I(1/50)) ##降低透明度,查看数据集中的区域 qplot(color , price/carat , data = diamonds , geom = "boxplot") ##箱线图(显示4分位点以及异常点) qplot(color , price/carat , data = diamonds , geom = "boxplot" , colour = color) ##修改框架颜色 qplot(color , price/carat , data = diamonds , geom = "boxplot" , fill = color) ##修改填充 ##直方图和密度曲线图 ##直方图和密度曲线可以展示单个变量的分布,相对与箱线图而言,他们提供了更多的关于单个分布的信息,但他们不太容易在不同组之间进行比较 qplot(carat , data = diamonds , geom ="histogram" ) ##直方图 qplot(carat , data = diamonds , geom ="density") ##密度图 qplot(carat , data = diamonds , geom ="density" , color = color) ##密度图,设置颜色 ##对于密度曲线而言,adjust参数控制了曲线的平滑程度(adjust取值越大,曲线越平滑) qplot(carat , data = diamonds , geom ="density" , adjust = 1) qplot(carat , data = diamonds , geom ="density" , adjust = 2) qplot(carat , data = diamonds , geom ="density" , adjust = 3) ##对于直方图而言,binwith参数通过设定组距来调节平滑度 ##在直方图中,应该尝试多种组距,当组距较大时,图形能反映数据的总体特征;组距较小时,则能显示出更多的细节 qplot(carat , data = diamonds , geom ="histogram" , binwidth =1 , xlim =c(0,3)) qplot(carat , data = diamonds , geom ="histogram" , binwidth =0.1 , xlim =c(0,3)) qplot(carat , data = diamonds , geom ="histogram" , binwidth =0.01 , xlim =c(0,3)) ##条形图,在离散变量的情形下,条形图与直方图相类似 qplot(color , data = diamonds , geom = "bar") qplot(color , data =diamonds , geom = "bar" , weight = carat) + scale_y_continuous("carat") ##按wight=carat进行加权,展示了每种颜色的总量 ##线条图与路径图(一般用于时间序列) str(economics) qplot(date , unemploy/pop , data = economics ,geom = "line") qplot(date , uempmed , data = economics , geom ="line") ##分组,图形的分组可以利用图形属性(颜色和形状)进行,可以将所有组绘制在同一张图中,也可以进行分面 ##分面:可以通过形如row_var~col_var的表达式进行指定,如果只想要指定一行或一列可以使用.作为占位符,例如row_var~.会创建一个单列多行的图形矩阵 qplot(carat , data = diamonds , facets = color~. , geom ="histogram" , binwidth =0.1 , xlim = c(0,3) ) qplot(carat , data = diamonds , facets = color~cut , geom ="histogram" , binwidth =0.1 , xlim = c(0,3) ) ##..density..表示将密度而不是频数映射到y轴 qplot(carat , ..density.. , data = diamonds , facets = color~. , geom ="histogram" , binwidth =0.1 , xlim = c(0,3) )
以上是关于R语言 qplot的主要内容,如果未能解决你的问题,请参考以下文章
R语言使用ggplot2包的快速可视化函数qplot绘制单个箱图实战
R语言使用ggplot2包的快速可视化函数qplot绘制基础直方图实战
R语言使用ggplot2包的快速可视化函数qplot绘制分组箱图实战