如何将百分比和分数添加到 ggplot geom_text 标签?
How do I add percentage and fractions to ggplot geom_text label?
我有一个数据集,我想在其中查看测试分数和经历事件的人数百分比:
dat <- data.frame(score = 1:7,
n.event = c(263,5177,3599,21399,16228,10345,1452),
n.total = c(877,15725,13453,51226,32147,26393,7875),
percentage = c(30,33,27,42,50,39,18))
我可以像这样用百分比在图表上绘制它:
ggplot(data=dat, aes(x=score, y=percentage)) +
geom_line() +
geom_text(aes(label = paste0(dat$percentage,"%")))
或者我可以用这样的分数绘制它:
ggplot(data=dat, aes(x=score, y=percentage)) +
geom_line() +
geom_text(aes(label = paste0("frac(",dat$n.event, ",", dat$n.total,
")")),parse = TRUE)
但我想把它们放在一起。这不起作用:
ggplot(data=dat, aes(x=score, y=percentage)) +
geom_line() +
geom_text(aes(label = paste0(dat$percentage,"%","frac(",dat$n.event,
",", dat$n.total, ")")),parse = TRUE)
我收到此错误:
解析错误(文本=as.character(实验室))::1:3:意外输入
1: 30% 压裂 (263,877)
^
感谢您的帮助!
这样的事情怎么样:
ggplot(data=dat, aes(x=score, y=percentage)) +
geom_line() +
geom_text(aes(label = paste0(dat$percentage,"%"))) +
geom_text(aes(label = paste0("frac(",dat$n.event, ",", dat$n.total,
")")),parse = TRUE, nudge_x = 0.0, nudge_y = -2)
使用 nudge_x
和 nudge_y
参数将标签放置到所需位置
问题是 parse=True
告诉 geom_text
使用 R 数学注释(在 ?plotmath
中描述)。在这个注解中,%
是一个必须转义的特殊符号,同样,space被忽略。
为了在 %
和公式的其余部分之间保持平衡,我们必须使用 '%'
转义它,使用 *
将它连接到前面的单词,然后添加a space 在使用 ~
之后。结果是:
ggplot(data=dat, aes(x=score, y=percentage)) +
geom_line() +
geom_text(aes(label = paste0(dat$percentage,"*\'%\'~","frac(",dat$n.event,
",", dat$n.total, ")")),parse = TRUE)
我有一个数据集,我想在其中查看测试分数和经历事件的人数百分比:
dat <- data.frame(score = 1:7,
n.event = c(263,5177,3599,21399,16228,10345,1452),
n.total = c(877,15725,13453,51226,32147,26393,7875),
percentage = c(30,33,27,42,50,39,18))
我可以像这样用百分比在图表上绘制它:
ggplot(data=dat, aes(x=score, y=percentage)) +
geom_line() +
geom_text(aes(label = paste0(dat$percentage,"%")))
或者我可以用这样的分数绘制它:
ggplot(data=dat, aes(x=score, y=percentage)) +
geom_line() +
geom_text(aes(label = paste0("frac(",dat$n.event, ",", dat$n.total,
")")),parse = TRUE)
但我想把它们放在一起。这不起作用:
ggplot(data=dat, aes(x=score, y=percentage)) +
geom_line() +
geom_text(aes(label = paste0(dat$percentage,"%","frac(",dat$n.event,
",", dat$n.total, ")")),parse = TRUE)
我收到此错误:
解析错误(文本=as.character(实验室))::1:3:意外输入 1: 30% 压裂 (263,877) ^
感谢您的帮助!
这样的事情怎么样:
ggplot(data=dat, aes(x=score, y=percentage)) +
geom_line() +
geom_text(aes(label = paste0(dat$percentage,"%"))) +
geom_text(aes(label = paste0("frac(",dat$n.event, ",", dat$n.total,
")")),parse = TRUE, nudge_x = 0.0, nudge_y = -2)
使用 nudge_x
和 nudge_y
参数将标签放置到所需位置
问题是 parse=True
告诉 geom_text
使用 R 数学注释(在 ?plotmath
中描述)。在这个注解中,%
是一个必须转义的特殊符号,同样,space被忽略。
为了在 %
和公式的其余部分之间保持平衡,我们必须使用 '%'
转义它,使用 *
将它连接到前面的单词,然后添加a space 在使用 ~
之后。结果是:
ggplot(data=dat, aes(x=score, y=percentage)) +
geom_line() +
geom_text(aes(label = paste0(dat$percentage,"*\'%\'~","frac(",dat$n.event,
",", dat$n.total, ")")),parse = TRUE)