2017-05-02 283 views
0

我注释了多面图以包含上标,但难以使文本粗体显示。我意识到这与在剧情调用之外创建expression然后指定parse=TRUE有关。有可能是一个相当简单的解决方案,但迄今为止,我尝试过的任何方法都无法解决问题,其中包括使用bquote()bold()。由于当parse = TRUE时,将geom_text更改为粗体

library(ggplot2) 

data(iris) 

rsq<-c(.3,.6,.75) 
pos<-c(5,6,7) 
Species<-levels(iris$Species) 

big_data<-as.data.frame(cbind(pos, rsq)) 
big_data$Species<-Species 

lab <- paste("r^2 == ", round(big_data$rsq,2)) 

ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width)) + 
    facet_wrap(~Species,scales='free_x')+ 
    geom_point(size=3,show.legend = F) + 
    geom_text(aes(x=pos,y=1,label=as.character(lab)),parse=TRUE,data=big_data,fontface='bold') 

enter image description here

回答

1

一个小小的欺骗 - 绘制文本3次,略有增加的大小。

ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width)) + 
    facet_wrap(~Species,scales='free_x')+ 
    geom_point(size=3,show.legend = F) + 
    geom_text(aes(x=pos,y=1,label=as.character(lab)),parse=TRUE,data=big_data,size=4)+ 
    geom_text(aes(x=pos,y=1,label=as.character(lab)),parse=TRUE,data=big_data,size=4.07)+ 
    geom_text(aes(x=pos,y=1,label=as.character(lab)),parse=TRUE,data=big_data,size=4.08) 

enter image description here

2

你可以得到rbold()

lab <- sprintf("bold(r)^2 == %.2f", big_data$rsq) 

,但仅此而已。从?plotmath

注意,粗体,斜体和BOLDITALIC并不适用于符号,因此不会对希腊符号,如被显示在符号字体亩。它们也不适用于数字常量。

对于更精细的印刷术,最好的选择可能是tikzDevice。

+0

如何令人失望。谢谢 –

相关问题