如何在R语言ggplot2中为y轴标签添加superscript上标
ggplot2 y轴标签添加上标的解决方法
你之前的写法没有生效,是因为直接在字符串中书写^符号不会被ggplot2解析为上标格式,需要搭配R的plotmath表达式语法实现,常用两种写法:
方案1:无动态变量时用expression()
如果标签内容是固定的,直接用expression()包裹标签内容即可,~用于在表达式中插入空格,^后接的内容会自动渲染为上标:
ggplot(df, aes(Date)) + geom_line(aes(y = OUT_SNOW_F, colour = "Flux")) + scale_color_manual(values = c("Orange")) + # 替换原ylab行即可 ylab(expression(Snow~Flux~(W/m^2))) + labs(color = "Legend") + ggtitle("Title")
如果上标包含多个字符,用{}包裹上标内容即可,比如要写W/m²s就写成expression(Snow~Flux~(W/m^{2s}))。
方案2:需要嵌入动态变量时用bquote()
如果标签里有要从环境中调用的变量,才需要用bquote(),需要用.()包裹要代入的变量名,示例如下:
# 示例:上标的数值是动态变量 power <- 2 ggplot(df, aes(Date)) + geom_line(aes(y = OUT_SNOW_F, colour = "Flux")) + scale_color_manual(values = c("Orange")) + ylab(bquote(Snow~Flux~(W/m^.(power)))) + labs(color = "Legend") + ggtitle("Title")
你之前bquote不生效大概率是没有用.()标记要代入的变量,或者错误地把整个表达式放在了字符串里。
内容的提问来源于stack exchange,提问作者Ed_Gravy
相关产品推荐
相关产品推荐

