如何传递ggplot2主题

时间:2015-08-05 21:16:17

标签: r ggplot2

我有一本较旧的ggplot2书,它已经过时了。它提到使用qplot,并选择。

我正在尝试学习如何正确设置ggplot2图表。我想知道我的以下代码是否是"正确"或者"接受"做事的方式。

我想将主题传递给一个情节,比如标题,轴标题,网格线,情节窗口的颜色等......

目前,此代码块一直有效,直到我尝试传递更改标题的主题。这是代码,以及在我传递主题之前制作的图表的图片

brooks.sr <- ggplot(data=sim_dat, aes(x=rates, y=means))
brooks.sr.line <-  brooks.sr + geom_line(data=sim_dat[sim_dat$stream=="Brooks", ]) + 
geom_hline(aes(yintercept=.944), colour = "red")

enter image description here

然后我尝试添加这行代码

brooks.sr.line + theme(title = element_text("Mean LWD Density across Sampling Rates"))

我得到了这个错误

> brooks.sr.line + theme(title = element_text("Mean LWD Density across    Sampling Rates"))
Warning messages:
1: In grid.Call(L_textBounds, as.graphicsAnnot(x$label), x$x, x$y,  :
  font family not found in Windows font database
2: In grid.Call(L_textBounds, as.graphicsAnnot(x$label), x$x, x$y,  :
  font family not found in Windows font database
3: In grid.Call(L_textBounds, as.graphicsAnnot(x$label), x$x, x$y,  :
  font family not found in Windows font database
4: In grid.Call.graphics(L_text, as.graphicsAnnot(x$label), x$x, x$y,  :
  font family not found in Windows font database
5: In grid.Call.graphics(L_text, as.graphicsAnnot(x$label), x$x, x$y,  :
  font family not found in Windows font database

我知道有以下代码块,看起来更好,我添加了标题和行。但是,我无法找到如何更改Axis标题,我可以看到您可以在哪里传递主题和元素来修改标题的文本,但不能更改标题本身

speelyai.sr <- ggplot(data=sim_dat, aes(x=rates, y=means))
speelyai.sr.line <-  speelyai.sr +   
geom_line(data=sim_dat[sim_dat$stream=="Speelyai", ]) + 
geom_hline(aes(yintercept=.584), colour = "red");speelyai.sr.line
speelyai.sr.line + ggtitle("Mean LWD Density using Simple Random 
 Sampling\nunder different Sampling Efforts") +
               theme(plot.title=element_text(size=rel(1.5), family="Times", face="bold"))

enter image description here 谢谢你的帮助

1 个答案:

答案 0 :(得分:2)

这应该适用于标题图:

+ labs(title = expression("Mean LWD Density across Sampling Rates"))

您还可以从同一行代码标记y轴和x轴:

+ labs(x="X-Title", y="Y-Title", title = expression("Mean LWD Density across Sampling Rates"))