如何解决ggplot2:删除geom_tile有线顶部和底部块
我尝试使用geom_tile绘制矩阵。但是,我注意到在情节的顶部和底部出现了两个奇怪的块。我最初的猜测是这些是刻度元素。据我所知,我尝试指定主题参数,但是没有运气。
基本上,我想删除用红色箭头标记的两个有线块。除了白色块,左图是我想要的。正确的绘图是我在plot.background
中调整了theme
,以显示您不知道的东西占据了该区域。
我还附加了可以重现左图的最小代码:
test2 <- matrix(runif(100*100),nrow = 100)
testdf <- test2 %>% reshape2::melt()
testdf$Var2 <- factor(testdf$Var2,levels=(seq(max(testdf$Var2),1))) # you Could ignore this line
testdf %>% ggplot() + geom_tile(aes(x=Var2,y=Var1,fill=log2(value+1))) +
scale_fill_gradientn(colors = c("#ffffff","#f9c979","#ec8121","#b80217","#2f0006")) +
theme(axis.title = element_blank(),axis.text = element_blank(),axis.ticks = element_blank(),legend.title = element_blank(),panel.background = element_blank(),panel.border = element_rect(colour = "black",fill=NA,size=1),plot.background = element_blank()) + coord_equal()
解决方法
这些块是ggplot2默认缩放比例的结果。要摆脱这些块,请通过scale_y_continuous
将扩展设置为零:
library(ggplot2)
library(reshape2)
test2 <- matrix(runif(100*100),nrow = 100)
testdf <- reshape2::melt(test2)
testdf$Var2 <- factor(testdf$Var2,levels=(seq(max(testdf$Var2),1))) # you could ignore this line
ggplot(testdf) +
geom_tile(aes(x=Var2,y=Var1,fill=log2(value+1))) +
scale_y_continuous(expand = c(0,0)) +
scale_fill_gradientn(colors = c("#ffffff","#f9c979","#ec8121","#b80217","#2f0006")) +
theme(axis.title = element_blank(),axis.text = element_blank(),axis.ticks = element_blank(),legend.title = element_blank(),panel.background = element_blank(),panel.border = element_rect(colour = "black",fill=NA,size=1),plot.background = element_blank()) + coord_equal()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。