调整R Boxplot(ggpubr)中的字体大小和小数位

时间:2019-02-04 18:17:23

标签: r ggplot2 ggpubr

我正在使用R包GGPubr制作Boxplots。我真的很喜欢它提供的漂亮视觉效果,但是遇到了问题。有谁知道如何增加轴上的数字,轴标签和类标签的字体大小?另外,如何设置平均值,使其仅显示2个小数位?

这是我正在使用的代码:

library("ggpubr")
mydata <- read.csv("C:\\temp\\ndvi.csv")
ggboxplot(mydata, x = "class", y = "NDVI", 
      color = "class",
      order = c("Conifer", "Deciduous", "Grasslands"),  ggtheme=theme_gray(),
      ylab = "NDVI Value", xlab = "Land Cover Class",
      add="mean",
      font.label = list(size = 30, face = "bold"))+ stat_summary(fun.data 
= function(x) data.frame(y=1, label = paste("Mean=",mean(x))),  geom="text")
+theme(legend.position="none")

还有csv:

NDVI,class
0.25,Conifer
0.27,Conifer
0.29,Conifer
0.403,Deciduous
0.38,Deciduous
0.365,Deciduous
0.31983489,Grasslands
0.32005,Grasslands
0.328887766,Grasslands

我希望使用GGPubr而不是boxplot()或ggplot / ggplot 2来达到上述预期效果。谢谢。

1 个答案:

答案 0 :(得分:1)

这是一个选项,其中我们使用round()来保留小数点后两位,并添加另一个theme()来更改文本大小。

ggboxplot(mydata, x = "class", y = "NDVI", 
          color = "class",
          order = c("Conifer", "Deciduous", "Grasslands"),  ggtheme=theme_gray(),
          ylab = "NDVI Value", xlab = "Land Cover Class",
          add="mean",
          font.label = list(size = 30, face = "bold")) +
  # use round() and set y = .45 
  stat_summary(fun.data = function(x) data.frame(y=1, label = paste("Mean=", round(mean(x), 2))), geom="text") + 
  theme(legend.position="none") +
  theme(text = element_text(size = 16)) # change text size of theme components

enter image description here