根据两个变量,使用ggplot2堆积条形图

时间:2015-12-09 18:16:57

标签: r ggplot2

我正在尝试使用ggplot2创建一个堆叠的条形图,它应该表示每个用户的“点击”或“已关闭”的操作数量。

数据如下所示:

ID;User;All;clicked;dismissed
1;andre;3;3;0
2;bianca;23;14;9
3;corinna;51;31;20
4;pfeifer;8;7;1

在下面找到一些我目前的方法,到目前为止完全没用,还有一些样本数据

enter image description here

# Load data
Temp <- read.csv("http://pastebin.com/raw.php?i=LtYsjY89", header = TRUE, stringsAsFactors=FALSE, sep = ";")
# Load package
library(ggplot2)
# Plot
ggplot(Temp, aes(x=User, fill=All)) +
geom_bar() + 
scale_fill_gradient("Count", low = "green", high = "red") 

正如您所看到的......应用了“All”-Variable的总数。我试图意识到:对于每个用户,应该创建一个堆叠条,它使用“clicked”和“dismissed”值表示“All”变量的分区。因此,“点击”和“解除”的条形部分应该具有不同的颜色 类似的方法建议融化数据(从广泛到长期),但我没有看到我的用例带来的好处。

1 个答案:

答案 0 :(得分:2)

你需要融化数据(根据@Gregor的评论)。原因是要点击&#34;点击&#34;并且&#34;被解雇&#34;要着色,你需要一个标记哪些计数来自&#34;点击&#34;来自&#34;解雇&#34;。熔化为长格式是您创建该列的方式。

library(reshape2)

Temp.m = melt(Temp, id.var=c("ID","User","All"))

# Plot
ggplot(Temp.m, aes(x=User, y=value, fill=variable)) +
  geom_bar(stat="identity")

enter image description here