R:geom_vline 标签上的上标
R: superscript on geom_vline label
标题说明了一切:我想在 ggplot 中的垂直线标签上使用上标。
这是一个不太漂亮的例子:
df <- data.frame(x = c(1:10),y = c(2,2,3,4,5,5,6,7,5,4))
ggplot(data=df, aes(x,y, group=1)) +
geom_line() +
scale_x_reverse() +
geom_vline(xintercept=3) +
geom_text(aes(x=3, label=paste("3400","cm","^-1", sep=""), y=5), angle=90, vjust = 1.2)
我想要 -1 上标。有很多解决方案可以在绘图轴标签上执行此操作,但其中 none 在这里有效。有人可以帮忙吗?
你太接近了!您只需要在 geom_text
中设置 parse=TRUE
并使用 ?plotmath
语法。
df <- data.frame(x = c(1:10),y = c(2,2,3,4,5,5,6,7,5,4))
library(ggplot2)
ggplot(data=df, aes(x,y, group=1)) +
geom_line() +
scale_x_reverse() +
geom_vline(xintercept=3) +
#geom_text(data = data.frame(x = 3, y = 5), label = paste("paste(3400, cm)","^-1", sep=""),
# angle=90, parse = TRUE, vjust = 1.2) +
annotate("text", x = 3, y = 5, angle = 90, label = paste("paste(3400, cm)","^-1", sep=""),
vjust = 1.2, parse = TRUE)
结果:
另外,请注意文本没有代码中那么模糊。这是因为您的代码实际上是在同一坐标处打印标签 10 次。您需要使 geom_text
使用不同的数据或更好,使用 annotate
标题说明了一切:我想在 ggplot 中的垂直线标签上使用上标。 这是一个不太漂亮的例子:
df <- data.frame(x = c(1:10),y = c(2,2,3,4,5,5,6,7,5,4))
ggplot(data=df, aes(x,y, group=1)) +
geom_line() +
scale_x_reverse() +
geom_vline(xintercept=3) +
geom_text(aes(x=3, label=paste("3400","cm","^-1", sep=""), y=5), angle=90, vjust = 1.2)
我想要 -1 上标。有很多解决方案可以在绘图轴标签上执行此操作,但其中 none 在这里有效。有人可以帮忙吗?
你太接近了!您只需要在 geom_text
中设置 parse=TRUE
并使用 ?plotmath
语法。
df <- data.frame(x = c(1:10),y = c(2,2,3,4,5,5,6,7,5,4))
library(ggplot2)
ggplot(data=df, aes(x,y, group=1)) +
geom_line() +
scale_x_reverse() +
geom_vline(xintercept=3) +
#geom_text(data = data.frame(x = 3, y = 5), label = paste("paste(3400, cm)","^-1", sep=""),
# angle=90, parse = TRUE, vjust = 1.2) +
annotate("text", x = 3, y = 5, angle = 90, label = paste("paste(3400, cm)","^-1", sep=""),
vjust = 1.2, parse = TRUE)
结果:
另外,请注意文本没有代码中那么模糊。这是因为您的代码实际上是在同一坐标处打印标签 10 次。您需要使 geom_text
使用不同的数据或更好,使用 annotate