为什么在 ggplot 中使用 theme() 会删除我事先指定的 labs() 命令?
Why does using theme() in ggplot deletes my beforehand specified labs() command?
情况似乎是,只要我在 ggplot2 中调用 theme(),我之前针对同一情节的 labs() 就会得到 deleted/overwritten。我现在冲浪了 5 个小时,但我没有看到解决方案。有谁知道发生这种情况的原因?你会拯救我的一周。
这是我的代码:
#creating variables and store them in new data frame
rel_pred <- fitted(rel)
rel_resid <- residuals(rel)
data1 <- data.frame(rel_resid, rel_pred)`
#plot the data
plot1 <- ggplot(data1, aes(x=rel_pred,y=rel_resid)) +
geom_point() +
geom_hline(yintercept=0, colour='red') #so far so good, everything works
plot1 + labs(y="Residuals", x="Fitted Values SF-12 MCS", caption="Figure
1. Residuals vs. fitted Values Model 1") #when I run this, it perfectly
adds labels
问题来了:只要我 运行 theme() 里面有任何元素,它就会让我以前的标签消失。
plot1 + theme(panel.background = element_rect(fill='transparent'),
plot.background = element_rect(fill='transparent'),
panel.border = element_blank(),
axis.line = element_line(colour="black", size=1),
axis.title.x = element_text(colour='black',size=6),
axis.title.y = element_text(colour='black', size=6),
plot.caption = element_text('Figure 1. Residuals vs. fitted Values Model
1')
)
正如 Richard 所说,您忘记了 "update" plot1
作为向原始图添加标签的结果。
这里:
plot1 <- ggplot(data1, aes(x=rel_pred,y=rel_resid)) +
geom_point() +
geom_hline(yintercept=0, colour='red') #so far so good, everything works
plot1 + labs(y="Residuals", x="Fitted Values SF-12 MCS", caption="Figure
1. Residuals vs. fitted Values Model 1") #when I run this, it perfectly
adds labels
试试看
plot1 <- ggplot(data1, aes(x=rel_pred,y=rel_resid)) +
geom_point() +
geom_hline(yintercept=0, colour='red') #so far so good, everything works
plot1 <- plot1 + labs(y="Residuals", x="Fitted Values SF-12 MCS", caption="Figure
1. Residuals vs. fitted Values Model 1") # no output now, it will save the result as plot1
然后
plot1 + theme(panel.background = element_rect(fill='transparent'),
plot.background = element_rect(fill='transparent'),
panel.border = element_blank(),
axis.line = element_line(colour="black", size=1),
axis.title.x = element_text(colour='black',size=6),
axis.title.y = element_text(colour='black', size=6),
plot.caption = element_text('Figure 1. Residuals vs. fitted Values Model
1')
)
将按预期工作
情况似乎是,只要我在 ggplot2 中调用 theme(),我之前针对同一情节的 labs() 就会得到 deleted/overwritten。我现在冲浪了 5 个小时,但我没有看到解决方案。有谁知道发生这种情况的原因?你会拯救我的一周。
这是我的代码:
#creating variables and store them in new data frame
rel_pred <- fitted(rel)
rel_resid <- residuals(rel)
data1 <- data.frame(rel_resid, rel_pred)`
#plot the data
plot1 <- ggplot(data1, aes(x=rel_pred,y=rel_resid)) +
geom_point() +
geom_hline(yintercept=0, colour='red') #so far so good, everything works
plot1 + labs(y="Residuals", x="Fitted Values SF-12 MCS", caption="Figure
1. Residuals vs. fitted Values Model 1") #when I run this, it perfectly
adds labels
问题来了:只要我 运行 theme() 里面有任何元素,它就会让我以前的标签消失。
plot1 + theme(panel.background = element_rect(fill='transparent'),
plot.background = element_rect(fill='transparent'),
panel.border = element_blank(),
axis.line = element_line(colour="black", size=1),
axis.title.x = element_text(colour='black',size=6),
axis.title.y = element_text(colour='black', size=6),
plot.caption = element_text('Figure 1. Residuals vs. fitted Values Model
1')
)
正如 Richard 所说,您忘记了 "update" plot1
作为向原始图添加标签的结果。
这里:
plot1 <- ggplot(data1, aes(x=rel_pred,y=rel_resid)) +
geom_point() +
geom_hline(yintercept=0, colour='red') #so far so good, everything works
plot1 + labs(y="Residuals", x="Fitted Values SF-12 MCS", caption="Figure
1. Residuals vs. fitted Values Model 1") #when I run this, it perfectly
adds labels
试试看
plot1 <- ggplot(data1, aes(x=rel_pred,y=rel_resid)) +
geom_point() +
geom_hline(yintercept=0, colour='red') #so far so good, everything works
plot1 <- plot1 + labs(y="Residuals", x="Fitted Values SF-12 MCS", caption="Figure
1. Residuals vs. fitted Values Model 1") # no output now, it will save the result as plot1
然后
plot1 + theme(panel.background = element_rect(fill='transparent'),
plot.background = element_rect(fill='transparent'),
panel.border = element_blank(),
axis.line = element_line(colour="black", size=1),
axis.title.x = element_text(colour='black',size=6),
axis.title.y = element_text(colour='black', size=6),
plot.caption = element_text('Figure 1. Residuals vs. fitted Values Model
1')
)
将按预期工作