我正在尝试使用ggplot创建一个热图,其中fill表示某些比率的大小。我目前有一张表如下:
company survey type value
* <chr> <chr> <chr> <dbl>
1 Raps S1_2014 Revenue 282576375
2 Raps S2_2014 Revenue 654413143
3 Raps S3_2014 Revenue 365753902
我的ggplot代码是:
ggplot(df1, aes(x=survey, y=survey)) +
geom_tile(aes(fill=value/value))
如您所见,图表中有空白,调查不会与他们自己互动(即S1_2014和S3_2014)。我可以将这些交叉点编码到我的ggplot调用中吗?或者我需要纠缠数据吗?如果我确实需要争吵,我该怎么做呢?
感谢。
答案 0 :(得分:2)
是 - ggplot只会绘制您提供的数据。我真的很惊讶value / value
给你除1以外的任何东西。你可以交叉加入你的数据,然后绘制:
dd = merge(df1[c(2, 4)], df1[c(2, 4)], all = T, by = NULL)
ggplot(dd, aes(survey.x, survey.y, fill = value.x / value.y)) +
geom_tile()
这样你也可以控制(并告诉)比率的方式。
将此作为输入:
df1 = read.table(text = "company survey type value
1 Raps S1_2014 Revenue 282576375
2 Raps S2_2014 Revenue 654413143
3 Raps S3_2014 Revenue 365753902", header = T)