【问题标题】:Heatmap/density plot from a grid in ggplotggplot中网格的热图/密度图
【发布时间】:2021-03-24 20:31:35
【问题描述】:

我有一个网格格式的 CSV 文件。

Link to the raw csv file on github

我想使用 ggplot 来绘制它,这样它就会看起来像这个图。

颜色代表单元格中的值。 (提供的csv有其他值)

如果不使用 x 和 y 美学,我无法让它工作。也许它可以通过使用行名和列名来修复,但现在第一行和第一列被用作列名和行名。也需要找到一些东西来改变它。

我觉得我快疯了。想要使用 geom_bin2d() 甚至 stat_density_2d() 但无法工作。

【问题讨论】:

  • 如果您包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出,则更容易为您提供帮助。在问题本身中包含示例数据,而不是链接到外部网站并显示您尝试过的代码。如果您的数据已经分箱,请改用 geom_tile() 之类的内容。

标签: r ggplot2


【解决方案1】:

也许你可以试着把它融化然后geom_raster():

library(ggplot2)
library(reshape2)

x = read.csv("https://raw.githubusercontent.com/Friends-of-Tracking-Data-FoTD/LaurieOnTracking/master/EPV_grid.csv",header=FALSE)

ggplot(melt(as.matrix(t(x))), aes(Var1,Var2, fill=value)) + 
geom_raster() + 
scale_fill_viridis_c(direction=-1) + 
theme_minimal()

或者:

ggplot(melt(as.matrix(t(x))), aes(Var1,Var2, fill=value)) + 
geom_tile() + 
scale_fill_viridis_c(direction=-1) + 
theme_minimal()

【讨论】:

  • 效果很好,谢谢!没有 as.matrix() 的 melt() 所以出了问题
猜你喜欢
  • 2016-01-22
  • 1970-01-01
  • 2016-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多