ggplot2-qplot()用法

简介

qplot()是ggplot2中的一个作图函数,意思是快速作图(quick plot),qplot()基于图形语法,使得我们可以用简单的、富有表达能力的语句来描述一张图形。下图是qplot()的一些知识概况:

id

基本用法

加载package和数据集

library(ggplot2)
set.seed(1410) ## 让样本可重复
dsmall <- diamonds[sample(nrow(diamonds), 100), ] ##使用ggplot2中的diamonds数据集

基本参数绘图

qplot()有三个基本的参数是x,y,data,分别表示x坐标,y坐标和数据集。默认绘制散点图,展示砖石价格和重量的关系。

qplot(carat, price, data = diamonds)

id

变量的函数

qplot()可以直接将变量的函数作为绘图的参数。

qplot(log(carat), log(price), data = diamonds)

id

qplot(carat, x * y * z, data = diamonds)

id

图形属性

qplot()中有个非常重要的概念:变量映射,指的是将数据的取值映射到该图形属性的有效取值上,比如颜色、大小和形状等是图形属性的具体化,用qplot()就可以将数据集中的数据映射到图形属性。除此之外,也可以用I()函数来手动设定。

自动设定

qplot(carat, price, data = dsmall, colour = color) ## 将color变量映射到点的颜色

id

qplot(carat, price, data = dsmall, shape = cut) ## 将cut变量映射到点的形状

id

手动设定

qplot(carat, price, data = diamonds, alpha = I(1/10)) ## alpha指透明度

id

qplot(carat, price, data = diamonds, alpha = I(1/100)) ## 分母表示经过多少次重叠颜色变得不透明

id

qplot(carat, price, data = diamonds, alpha = I(1/200)) ## 观察大部分点在哪里重叠

id

几何对象

qplot()除了绘制散点图之外,通过改变几何对象,几乎可以画出任何一种类型的图形。具体的分类可以参考文章最上方的思维导图。这里直接上代码:

qplot(carat, price, data = dsmall, geom = c("point", "smooth")) ## 拟合平滑曲线

id

qplot(color, price / carat, data = diamonds, geom = "jitter", alpha = I(1/50)) ## 扰动点图,可改变透明度来观察以颜色为条件的砖石每克拉价格的分布

id

qplot(carat, data = diamonds, geom = "density", colour = color) ## 密度曲线图,加上颜色的图形映射

id

qplot(carat, data = diamonds, geom = "histogram", binwidth = 0.1, fill = color) ## 直方图

id

qplot(color, data = diamonds, geom = "bar") ## 条形图

id

分面

分面不同于图形属性,简单的说就是将不同属性的图分别画出来,在一张大图中有若干的小图,不同的小图之间来进行比较。下面举一个直方图的例子:

qplot(carat, data = diamonds, facets = color ~ ., geom = "histogram", binwidth = 0.1, xlim = c(0, 3)) ## binwidth为组距

id

外观

qplot()中有一些控制图形外观的参数,比如坐标轴区间,标签文字等。直接举个例子:

qplot(carat, price, data = dsmall,
      xlab = "Price ($)", ylab = "Weight (carats)",
      main = "Price-weight relationship"
      )

id

参考文献

[1][ggplot2:数据分析与图形艺术]