如何更改R图表中的默认字体大小

时间:2015-01-09 23:49:26

标签: r

我正在使用R包cooccur,无法弄清楚如何更改相关图形中的字体大小。 par()方法似乎不起作用。

以下是该软件包给出的示例:

data(finches)
cooccur.finches <- cooccur(mat=finches,
type="spp_site",
thresh=TRUE,
spp_names=TRUE)
plot(cooccur.finches)

我正在尝试更改物种的字体大小,标题和图例,但在生成的热图上无济于事。任何帮助将非常感激。谢谢!

3 个答案:

答案 0 :(得分:1)

这是一个ggplot2情节而不是基础情节。所以par将不起作用。

p <- plot(cooccur.finches)
p + theme(text = element_text(size = 10))  ## change text font size

p + theme_grey(base_size = 18)             ## chnage all font size.

答案 1 :(得分:1)

不幸的是,作者没有在函数中使用已定义的主题,所以如果你不想搞乱其他自定义,这应该有效:

p <- plot(cooccur.finches)
p + theme_bw(base_size = 28) +
    theme(axis.text = element_blank(), 
          axis.ticks = element_blank(), 
          plot.title = element_text(vjust = -4, face = "bold"), 
          panel.background = element_rect(fill = "white", colour = "white"), 
          panel.grid = element_blank()
          legend.position = c(0.9, 0.5))

您也可以使用此代码单独设置图例或标题的大小,例如

p + theme(plot.title = element_text(vjust = -4, face = "bold", size = 36))

最不幸的是,这不会改变物种标签的大小,因为它们设置为geom_text()。要改变它们,你必须自己破解这个功能cooccur:::plot.cooccur。您只需要修改最后一行:

p + geom_text(data = dfids, aes(label = X1), hjust = 1, vjust = 0, 
        angle = -22.5)
# change to
p + geom_text(data = dfids, aes(label = X1), hjust = 1, vjust = 0, 
        angle = -22.5, size = 24)

答案 2 :(得分:0)

Cooccur的作者在这里。很抱歉,文字大小很难调整。当我有机会时,我会处理这个问题。

不是永久性的解决方案,但每次更改物种标签的功能都比在ggplot对象中直接重新分配值更容易:

p$layers[[2]]$geom_params$size <- 10

希望有所帮助。我可能会有点迟到......