[R ggplot geom_text打掉背景 - 错误?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[R ggplot geom_text打掉背景 - 错误?相关的知识,希望对你有一定的参考价值。

我发现GGPLOT2 :: geom_text()时,我试图强调我的数据和标签的问题。我MWE说明了情况。后我定义的情节我从相#1颜色的面板和情节背景添加主题()。红/绿是重点。当标签在相#2被添加时,plot.background进入白色和面板背景,以默认的灰色。这是不是我做的,这是GGPLOT2的无证功能,或者这是一个错误?

 require(ggplot2)

 SESnow <- data.frame(Year=c(1978,1988,1995,2000,2013,2017), 
                 Snow=c(355.9,322.1,329.1,303.6,318.5,304.0))

p <- ggplot(SESnow, aes(x=Year, y=Snow, fill=Snow)) +
geom_col(width=1)  + 
scale_fill_gradient(low="blue", high="red",  limits=c(0,400)) +
theme(axis.title.y=element_text(angle=0)) +
ggtitle("Yearly Total Snowfall (inch)") + 
labs(subtitle = "Copper City 2019", 
   caption="Source: Keweenaw County", 
   x="Snow Season") +
theme(legend.position="none")

#phase#1
p + theme( panel.background = element_rect(fill = "green",
                                       colour = "black",
                                       size = 0.5, linetype = "solid"),
       plot.background = element_rect(fill = "blue",
                                      colour = "black",
                                      size = 0.5, linetype = "solid"),
       axis.text.x = element_text(colour="grey20",size=11, vjust=1,
                                   margin=margin(t=0,b=0),face="bold"),
       axis.text.y = element_text(colour="grey20",size=11,  hjust=1,
                                   margin=margin(t=10,b=10),face="bold") )

#phase#2
p + geom_text(data=SESnow, aes(label = Snow, fill=NULL ),  y = SESnow$Snow + 20.0, 
        label=format(SESnow$Snow, digits=2), size=3, fontface="bold",
        color="black")

还要注意的是,如果你运行阶段#1相#2标签消失后,所以这个功能是一致的。如何获得与标签和彩色背景的阴谋?

答案

答案很简单。您正在生成两幅地块,而不是一个。你需要存储在p的情节,如果你想使用相同的情节和以后修改。


#phase#1
p <- p + theme( panel.background = element_rect(fill = "green",
                                       colour = "black",
                                       size = 0.5, linetype = "solid"),
       plot.background = element_rect(fill = "blue",
                                      colour = "black",
                                      size = 0.5, linetype = "solid"),
       axis.text.x = element_text(colour="grey20",size=11, vjust=1,
                                   margin=margin(t=0,b=0),face="bold"),
       axis.text.y = element_text(colour="grey20",size=11,  hjust=1,
                                   margin=margin(t=10,b=10),face="bold") )

#phase#2
p + geom_text(data=SESnow, aes(label = Snow, fill=NULL ),  y = SESnow$Snow + 20.0, 
        label=format(SESnow$Snow, digits=2), size=3, fontface="bold",
        color="black")

分配给p您再次使用它之前的值。这将解决这一问题。

编辑:我附上图。我想这是你wanted.enter image description here什么

以上是关于[R ggplot geom_text打掉背景 - 错误?的主要内容,如果未能解决你的问题,请参考以下文章

在ggplot(R)上包装geom_text / geom_label [重复]

R语言与医学统计图形-16ggplot2几何对象之标签与文本

是否可以用ggplot2在R中以科学计数形式显示绘图geom_text数据标签?

R语言ggplot2可视化:使用scale_shape_identity函数显示pch点形状使用geom_text函数为pch形状添加标(plot characters)

R语言ggplot2可视化在图像中添加竖线并在竖线的两边添加文本标签并对齐实战:添加竖线添加竖线两边的对齐文本标签(Align geom_text with geom_vline )

ggplot:geom_text不应出现在图例中[重复]