R ggplot2中的自定义记号和自定义字体面

R ggplot2中的自定义记号和自定义字体面,r,ggplot2,R,Ggplot2,道歉,如果这是直截了当的或已经得到了回答,但我已经搜索了高和低,并没有能够找到一个解决方案的任何地方 我正在使用ggplot2,试图(1)为包含下标的轴指定自定义记号,以及(2)尝试指定这些记号中的一些应为粗体,其他应为斜体。我知道如何分别做(1)和(2),但当我试图同时做这两件事时,只有(1)成功 y.labels<-c(expression(A[Subscript]),expression(B^Superscript)) y.face<-c("bold","italic") te

道歉,如果这是直截了当的或已经得到了回答,但我已经搜索了高和低,并没有能够找到一个解决方案的任何地方

我正在使用ggplot2,试图(1)为包含下标的轴指定自定义记号,以及(2)尝试指定这些记号中的一些应为粗体,其他应为斜体。我知道如何分别做(1)和(2),但当我试图同时做这两件事时,只有(1)成功

y.labels<-c(expression(A[Subscript]),expression(B^Superscript))
y.face<-c("bold","italic")
testdf<-data.frame(x=rnorm(100),y=1:2)
但当我让标签采用默认值时,粗体/斜体确实会出现:

ggplot(testdf,aes(x=x,y=y))+geom_point()+
 theme(axis.text.y=element_text(face=y.face)) 
据我所知,问题与订阅/上标无关, 尽管这是我的目标,但在这里(这就是为什么我要直接传递记号,而不是创建一个带有所需标签的因子变量,这是可行的)。这也行不通:

ggplot(testdf,aes(x=x,y=y))+geom_point()+
  scale_y_discrete(label=c("Custom1","Custom2"))+
  theme(axis.text.y=element_text(face=y.face)) 

如果有人能在这里解释发生了什么,并提供一个解决方案,使我能够同时做到这两件事,我将不胜感激。谢谢

plotmath不支持fontface,您希望在表达式中使用
bold()
italic()

y.labels<-c(expression(bold(A)[Subscript]),expression(italic(B)^Superscript))
ggplot(testdf,aes(x=x,y=y))+geom_point()+
    scale_y_discrete(label=y.labels)

y.labelsuper,非常感谢。这是有道理的。有没有什么方法可以用下标/上标来表示你的脸?或者我最好的选择是按照你的建议加粗/斜体?
y.labels<-c(expression(bold(A)[Subscript]),expression(italic(B)^Superscript))
ggplot(testdf,aes(x=x,y=y))+geom_point()+
    scale_y_discrete(label=y.labels)