2015-10-25 98 views
0

我想用ggplot2创建一个堆积条形图。这里是我的数据看起来像使用ggplot2在R中堆积的条形图

Date   Full.Page.Ads Total.Pages 
11/10/2015    3   24 
12/10/2015    10   24 
13/10/2015    15   24 

这是我想使用可视化数据

library("ggplot2") 
library("reshape2") 

ns <- read.csv("NS.csv") 

ggplot(data=ns, aes(x = Date, y = Total.Pages, fill=Full.Page.Ads)) + geom_bar(stat = "identity") 

的代码,但由于某些原因,而不是作出适当的堆积条形图,它使使这样的东西http://imgur.com/rqxEzjF.jpg。而不是我想显示主栏作为Total.Pages和这些栏内,不同颜色的Full.Page.Ads栏。

我不知道我在做什么错在这里。

这就是我期待可以赚http://blog.visual.ly/wp-content/uploads/2012/08/StackedPercent.png

回答

0

你必须绘制之前,融化你的数据的样本。如果您希望图表代表Full.Page.Ads相对于页面总数的比例,则还需要计算Total.Pages和Full.Page.Ads之间的差异。类似于:

ns <- data.frame(Date = c("11/10/2015", "12/10/2015", "13/10/2015"), 
       Full.Page.Ads = c(3, 10, 15), 
       Total.Pages = c(24, 24, 24)) 

# Date Full.Page.Ads Total.Pages 
# 1 11/10/2015    3   24 
# 2 12/10/2015   10   24 
# 3 13/10/2015   15   24 


ns$not.Full.Page.Ads <- ns$Total.Pages - ns$Full.Page.Ads 
ns$Total.Pages <- NULL 
ns2 <-melt(ns) 

#  Date   variable value 
#1 11/10/2015  Full.Page.Ads  3 
#2 12/10/2015  Full.Page.Ads 10 
#3 13/10/2015  Full.Page.Ads 15 
#4 11/10/2015 not.Full.Page.Ads 21 
#5 12/10/2015 not.Full.Page.Ads 14 
#6 13/10/2015 not.Full.Page.Ads  9 

ggplot(data = ns2, aes(x = Date, y = value, fill = variable)) + geom_bar(stat = "identity") 
+0

工作正常。谢谢。你能解释一下这背后的逻辑吗? –