我们可以绘制如下框图:
qplot(factor(cyl), mpg, data = mtcars, geom = "boxplot")
Run Code Online (Sandbox Code Playgroud)
并指向:
qplot(factor(cyl), mpg, data = mtcars, geom = "point")
Run Code Online (Sandbox Code Playgroud)
你如何将两者结合起来 - 但只是为了wt在盒子顶部显示一些特定点(比如何时小于2)?
如果您尝试使用两个不同的数据集绘制两个geom(mtcars的boxplot,文字值的data.frame的点),这是一种方法,可以使您的意图清晰.这适用于ggplot(ggplot2_2.1.0)的当前(2016年9月)版本
library(ggplot2)
ggplot() +
# box plot of mtcars (mpg vs cyl)
geom_boxplot(data = mtcars,
aes(x = factor(cyl), y= mpg)) +
# points of data.frame literal
geom_point(data = data.frame(x = factor(c(4,6,8)), y = c(15,20,25)),
aes(x=x, y=y),
color = 'red')
Run Code Online (Sandbox Code Playgroud)
我投入了一color = 'red'组点,所以很容易将它们与作为一部分生成的点区分开来geom_boxplot
使用+ geom_point(...)您的qplot(只需添加一个+ geom_point()即可绘制所有点)。
要有选择地绘制,只需选择要绘制的点:
n <- nrow(mtcars)
# plot every second point
idx <- seq(1,n,by=2)
qplot( factor(cyl), mpg, data=mtcars, geom="boxplot" ) +
geom_point( aes(x=factor(cyl)[idx],y=mpg[idx]) ) # <-- see [idx] ?
Run Code Online (Sandbox Code Playgroud)
如果您事先知道要点,则可以直接输入它们,例如:
qplot( factor(cyl), mpg, data=mtcars, geom="boxplot" ) +
geom_point( aes(x=factor(c(4,6,8)),y=c(15,20,25)) ) # plot (4,15),(6,20),...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11985 次 |
| 最近记录: |