use*_*545 9 label r ggplot2 facet-wrap
我想expression在一个ggplot2方面标签上有一个R.
假设我正在策划tips data.frame:
library(reshape2)
> head(tips)
total_bill tip sex smoker day time size
1 16.99 1.01 Female No Sun Dinner 2
2 10.34 1.66 Male No Sun Dinner 3
3 21.01 3.50 Male No Sun Dinner 3
4 23.68 3.31 Male No Sun Dinner 2
5 24.59 3.61 Female No Sun Dinner 4
6 25.29 4.71 Male No Sun Dinner 4
Run Code Online (Sandbox Code Playgroud)
如下:
library(ggplot2)
sp <- ggplot(tips, aes(x=total_bill, y=tip/total_bill)) +
geom_point(shape=1) +
facet_wrap(~sex, ncol = 1)
Run Code Online (Sandbox Code Playgroud)
我不想将"女性"和"男性"作为方面标签,而是分别为" 女性主体"和" 男性主体".据我所知,R中的标签是通过expression函数实现的,但我不知道如何将其与之结合起来facet_wrap.
截至ggplot2 2.1.0:
data(tips, package="reshape2")
library(ggplot2)
ggplot(tips, aes(x=total_bill, y=tip/total_bill)) +
geom_point(shape=1) +
facet_wrap(~sex, ncol=1,
labeller=label_bquote(.(levels(tips$sex)[sex])~subjects))
Run Code Online (Sandbox Code Playgroud)
看起来过于复杂,但有效.你必须使用facet_grid.
make_label <- function(value) {
x <- as.character(value)
bquote(italic(.(x))~subjects)
}
plot_labeller <- function(variable, value) {
do.call(expression, lapply(levels(value), make_label))
}
ggplot(tips, aes(x=total_bill, y=tip/total_bill)) +
geom_point(shape=1) +
facet_grid(.~sex, labeller = plot_labeller)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3136 次 |
| 最近记录: |