我试图创建一个类似于以下的情节:
也就是说,基于ggplot中的值(白色表示0)具有较深颜色的图。
我有一些花边
library(tidyverse)
library(ggplot2)
macs <- c(1,2,3,4,5,6)
KP <- c(4,5,0,7,8,2)
PF <- c(4,6,8,0,3,1)
df <- data.frame(macs,KP,PF)
rownames(df) <- c("PelTrawl","DemTrawl","KelpHarv","DemSeine","Rifles","Nets")
我想用它来创作情节。例如,我希望0的瓷砖为白色,而数字较大的瓷砖具有更高的不透明度(如图所示)。
我尝试使用热图或平铺ggplots,但我不太清楚在aes()中放什么。ie
ggplot() +
geom_tile(df,aes(x = ?,y = ?, color = ?))
谢谢你
1条答案
按热度按时间5w9g7ksd1#
您需要将数据调整为适当的格式以进行打印。首先,使用
rownames_to_column
将行名转换为列。然后,你需要转向长格式。这意味着不是有三个变量,每个变量都包含数字,而是有两个变量:一个将测量标记为来自“macs”、“KP”或“PF”,另一个包含测量的值。你可以用pivot_longer
来实现。这允许您将变量名称作为分类x轴,并将值作为填充颜色。为了完整起见,您可以通过将列名和行名转换为因子来重新排列列名和行名,使其与在数据中出现的顺序相同。
剩下的只是主题。