我有一个具有以下结构的 df :
id col1 col2 col3
#1 A 1 3 3
#2 B 2 2 3
#3 C 1 2 3
#4 D 3 1 1
Run Code Online (Sandbox Code Playgroud)
我想创建一个“类似热图”的图形,其中 col1-col3 被视为因子变量(有五个级别 1-5,此处未全部显示),并且根据它们的值,它们会收到不同的颜色。我已经对以下代码进行了相对深入的了解:
df <- melt(df, id.vars="id")
p <- ggplot(df, aes(x=variable, y=id, label=value, fill=as.factor(value))) +
geom_tile(colour="white", alpha=0.2, aes(width=0.4)) +
scale_fill_manual(values=c("yellow", "orange", "red", "green", "grey")) +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) +
labs(x = "Value", y="id") +
scale_x_discrete(expand=c(0,0))+
scale_y_discrete(expand=c(0,0))
Run Code Online (Sandbox Code Playgroud)
然而,由于某种原因,我的图块在 x 轴上的图块之间(即每个因子水平之间)有很大的灰色空白空间。输出图像看起来像这样

另外,我在每个图块的中间都有这些细白线,
所以我想做的是:1-更改图块的大小和形状(希望它是正方形且比现在小)2-删除白色瓷砖中间的线。
谢谢你!