R语言 如何使用ggplot2从geom_tile(热图)中删除白色

dwthyt8l  于 2023-09-27  发布在  其他
关注(0)|答案(3)|浏览(149)

在移除热图中平铺之间的白色时遇到问题。下面是代码和图片。以前有人遇到过吗?

t <- ggplot(Drug_heatmap_df_final, 
   aes(x=reorder(Drug,Total_Deaths), y=Start_Date, fill=Total_Deaths)) + 
   geom_tile() + 
   labs(title="Heatmap of Total Deaths per month by Drug", x="Drug", y="Month") + 
   theme(plot.title = element_text(hjust=.5)) +
   scale_y_date(date_breaks="1 year" , labels = date_format("%b-%Y")) +
   theme(axis.text.x = element_text(size=13)) 

plot(t)

u3r8eeie

u3r8eeie1#

我不知道这是否是最优雅的解决方案,但如果您在aes中添加color,然后在geom_tile中使用大小,您可以让它们重叠并删除白色:
首先是我的数据看起来与白色:

ggplot(mydf, aes(x=grp, y=date, fill=n)) + 
  geom_tile()

现在,我将颜色设置为与填充相同的对象,并更改大小:

ggplot(mydf, aes(x=grp, y=date, fill=n,color=n)) + 
  geom_tile(size=0.6)

就像我说的,可能不是最优雅的解决方案,可能有一个更好,更有效的方法来确定大小值(而不是像我那样反复试验),但总的来说,这似乎解决了你的问题。

lndjwyie

lndjwyie2#

因此,我也在努力解决同样的问题,无法使我的冒犯轴(24小时周期)离散。最后,我意识到,我每2分钟(1/30小时)绘制一次图块,我的csv数据文件将点舍入到0.03的间隔,在图块之间留下了间隙,因此出现了白色。我只是简单地将Excel工作表中的小数位数从2位改为许多位,给出0.03333333间隔,白色消失了。Horray!my heatmap before vs after

2j4z5cfb

2j4z5cfb3#

如果在两个轴上都绘制连续变量,并且使用geom_tile,则应考虑使用geom_rastergeom_raster删除了我的用例中的行,而且速度更快!
geom_raster要求每个图块大小相同,但根据我的经验,这通常已经足够了。请在此处查看文档:https://ggplot2.tidyverse.org/reference/geom_tile.html

相关问题