我想修改以下ggplot(取自this question,并对其进行修改),以使其显示出正方形之间的清晰分隔线。
我有这个:
我想要这个:
SELECT temp.col1, temp.col2, temp.col3
FROM
SELECT
col1, col2,col3,
ROW_NUMBER() OVER (PARTITION BY col1, col2 ORDER BY col3 DESC) AS rowNum
FROM Table1 AS temp;
WHERE temp.rowNum > 4;
答案 0 :(得分:2)
您可以通过将color
映射到fill
之外的值来获得大部分信息。
唯一的问题是黑色正方形的外边界是白色的。要删除此错误,可以修改轴扩展,以便面板边框创建黑线。
mm %>%
melt() %>%
ggplot(aes(Var2, Var1)) +
geom_tile(aes(fill = value,
color = value)) +
coord_equal() +
scale_fill_manual(values = c("black", "white")) +
scale_color_manual(values = c("white", "black")) +
theme_bw() +
theme(axis.title = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
panel.grid = element_blank()) +
guides(fill = FALSE, color = FALSE) +
scale_x_discrete(expand = c(0,0)) +
scale_y_discrete(expand = c(0,0))
答案 1 :(得分:2)
我喜欢@neilfws答案。但是,我认为白色或黑色瓷砖周围不同颜色边框的出现实际上是由眼睛看到对比度的方式引起的错觉。因此,这是另一种选择-仅在所有图块周围使用灰色边框:
ggplot(melted, aes(x = Var2, y = Var1, fill = value)) +
geom_tile(color='gray50') +
scale_fill_manual(values = c("white", "black")) +
theme_bw() +
theme(legend.position = "none",
axis.title.x=element_blank(),
axis.text.x=element_blank(),
axis.ticks.x=element_blank(),
axis.title.y=element_blank(),
axis.text.y=element_blank(),
axis.ticks.y=element_blank(),
panel.grid = element_blank(),
panel.border = element_blank())