使用geom_bin2d和ggplot2的自定义标签

时间:2017-04-26 23:45:47

标签: r ggplot2

我正在尝试制作一个2D图,其中框/图块根据输入数据框的列进行标记。我之前使用geom_bin2d(和stat_bin2d)来做类似的事情,但它似乎只允许计数或密度成为实际绘制的材料。示例代码是这样的:

df <- data.frame(Year = c(rep(2010, 4), rep(2011, 4), rep(2012, 4)), Rank = rep(1:4, 3), 
                 Diff = c(rep(0, 3), 1, 0, -1, 2, 0, -3, rep(0, 3)))


ggplot(df, aes(Year, Rank, Diff)) +
  geom_bin2d() +
  scale_fill_gradient(low='gray', high='red')

我想要的是这样的东西,但导向栏也对应于方框中显示的数据。注意我手动添加这些数字用于说明目的。有帮助吗?

enter image description here

1 个答案:

答案 0 :(得分:2)

没有必要在这里装箱,因为(如果我理解你的问题)你试图在由两个其他变量表示的格点上绘制一个变量的值。

ggplot(df, aes(factor(Year), factor(Rank), fill=Diff)) +
  geom_tile(height=0.8, width=0.8) +
  geom_text(aes(label=Diff)) +
  scale_fill_gradient(low='gray', high='red') +
  coord_equal() +
  labs(x="Year", y="Rank") +
  theme_classic() 

enter image description here