分面
qplot()
中默认的分面方法是将图形拆分成若干个窗格,这可以通过形如row_var~col_var
的表达式进行指定。你可以指定任意数量的行变量和列变量,但请注意当变量数超过两个时,生成的图形可能会非常大,以至于不适合在屏幕上显示。如果只想指定一行或一列,可以使用.作为占位符,例如row_var-.
会创建一个单列多行的图形矩阵。
下用了两张图来展示这个技巧,它们是以颜色为条件的重量的直方图。第二列的直方图绘制的是比例,这使得比较不同组的分布时不会受该组样本量大小的影响。左边一列直方图的y轴并不是原始数据的取值,而是将数据进行分组后的计数;..density..
则是一个新的语法,它告诉ggplot2
将密度而不是频数映射到y轴。
density
将密度反映到y轴
facets
分面依据的变量
qplot(carat, data = diamonds, facets = color ~ .,
geom = "histogram", binwidth = 0.1, xlim = c(0, 3))
qplot(carat, ..density.., data = diamonds, facets = color ~ .,
geom = "histogram", binwidth = 0.1, xlim = c(0, 3))
展示以颜色为条件的重量的直方图。上图展示的是频数,下图展示的是频率。频率图可以使得比较不同组的分布时不会受该组样本量大小的影响。
高质量的钻石(颜色 D) 在小尺寸上的分布是偏斜的,而随着质量的下降,重量的分布会变得越来越平坦。
其他选项
qplot
中还有一些其他的选项用于控制图形的外观。这些参数与它们在plot
中的作用相同:
xlim
,ylim
:设置x轴和y轴的显示区间,它们的取值都是一个长度为2的数值向量,例如xlim=c(0,20)
或ylim=c(-0.9,-0.5)
;log
:一个字符型向量,说明哪一个坐标轴(如果有的话)应该取对数。例如,log="x"
表示对x轴取对数,log="xy"
表示对x轴和y轴都取对数;main
:图形的主标题,放置在图形的顶端中部,以大字号显示。该参数可以是一个字符串(例如,main="plot - title"
)或一个表达式(例如main=expression(beta[1]==1)
)。可以运行?plotmath
命令来查看更多的数学表达式的例子;xlab
,ylab
:设置x轴和y轴的标签文字,与主标题一样,这两个参数的取值可以是字符串或数学表达式。
下面是一些操作实例
qplot(carat, price, data = dsmall, xlab = "Price ($)", ylab = "Weight (carats)",
main = "Price-weight relationship")
qplot(carat, price/carat, data = dsmall, ylab = expression(frac(price, carat)),
xlab = "Weight (carats)", main = "Small diamonds", xlim = c(0.2, 1))
扫描二维码关注公众号,回复:
10181212 查看本文章
qplot(carat, price, data = dsmall, log = "xy")