【问题标题】:Subscripts and superscripts "-" or "+" with ggplot2 axis labels? (ionic chemical notation)带有ggplot2轴标签的下标和上标“-”或“+”? (离子化学符号)
【发布时间】:2016-04-25 20:09:04
【问题描述】:

我使用下面的代码得到了这个情节

在我的情节中,我希望 NO3 有负号“-”作为上标,如下所示

在x轴的标签中,我不能只使用负号作为NO3的上标,所以我必须使用-1,如下所示

x <- seq(0,2*pi,0.1)
y <- sin(x)

df <- data.frame(x, y)
ggplot(df, aes(x=x, y=y))+
geom_point(size=4)+
labs(x=expression(Production~rate~" "~mu~moles~NO[3]^{-1}-N~Kg^{-1}),
     y=expression(Concentration~mg~L^{-1})) 

关于如何将标签更改为只有负号而没有 1 的任何建议?

【问题讨论】:

  • 只使用字符串值而不是数字值:NO[3]^{"-"}
  • 还有另一种策略。在(一元)减号后使用空字符。优点是所有的缺点看起来都一样:`NO[3]^{-""}

标签: r ggplot2 notation


【解决方案1】:

尝试在上标运算符后引用减号:

ggplot(df, aes(x=x, y=y))+
geom_point(size=4)+
labs(x=expression(Production~rate~" "~mu~moles~NO[3]^{"-"}-N~Kg^{-1}),
     y=expression(Concentration~mg~L^{-1})) +
theme(legend.title = element_text(size=12, face="bold"),
      legend.text=element_text(size=12),
      axis.text=element_text(size=12),
      axis.title = element_text(color="black", face="bold", size=18))

我认为在单元之间使用%.% 运算符看起来更科学准确:

+ labs(x=expression(Production~rate~" "~mu~moles~NO[3]^{textstyle("-")}-N %.% Kg^{-1}),
     y=expression(Concentration~mg~L^{-1})) +

textstyle 应该防止上标文本变小。我也不确定为什么你在两个波浪号之间有一个" "。您可以将一大堆波浪线串在一起以增加“空格”:

ggplot(df, aes(x=x, y=y))+
geom_point(size=4)+
labs(x=expression(Production~rate~~~~~~~~~~~~mu~moles~NO[3]^{textstyle("-")}-N %.% Kg^{-1}),
     y=expression(Concentration~mg~L^{-1})) +
theme(legend.title = element_text(size=12, face="bold"),
      legend.text=element_text(size=12),
      axis.text=element_text(size=12),
      axis.title = element_text(color="black", face="bold", size=18))

还有一个额外的 plotmath 提示:引用数字是一种解决记录在用 plotmath 生成斜体数字时遇到的困难的方法。 (使用italic(123) 不会成功,...但italic("123") 会成功。)

【讨论】:

  • 如果您想将单位包含在括号中,这将如何工作?如“浓度(mg L^-1)”而不是“浓度mg L^-1”
  • 括号可以在文本引号内,所以:expression(Concentration~"("*mg~L^{-1}*")")。似乎不那么优雅。我认为更好的是expression(Concentration~(mg%.%L^{-1}) )。请注意,* 在非绘图项目之间不需要空格时使用。作为风格问题,我更喜欢在单位指示符之间使用“cdot”:expression(Concentration~(mg%.%L^{-1}))
  • 我最终使用了labs(y=expression(paste("Concentration (mg ", L^-1,")")))
猜你喜欢
  • 1970-01-01
  • 2021-08-11
  • 2014-02-12
  • 2015-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-29
相关资源
最近更新 更多