我无法决定如何绘制我的数据图表。 它由代表人口的重叠数量组成,因此我决定使用堆积条。
这些代表六个人口部门(“团体”),其中第1组和第2组是主要部门。第4至6组是两个子组,这些是彼此的子组。其简单的图表如下:
注意:组1和组2完成整个人口或组1 +组2 = 100%。
我希望所有这些信息都在一个图表中,我不知道该怎么做以及如何实现。
到目前为止,我有下面的那个,这是错误的,因为第1组包含在主栏中。
require(ggplot2)
require(reshape)
tab <- data.frame(
set=c("XXX","XXX","XXX","XXX","XXX","XXX"),
group=c("1","6","5","4","3","2"),
rate=as.numeric(c(10000,20000,50000,55000,75000,100000))
)
dat <- melt(tab)
dat$time <- factor(dat$group,levels=dat$group)
ggplot(dat,aes(x=set)) +
geom_bar(aes(weight=value,fill=group),position="fill",color="#7F7F7F") +
scale_fill_brewer("Groups", palette="OrRd")
答案 0 :(得分:1)
使用facet可以将你的情节分成两部分:
# changed value of set for group 1
tab <- data.frame(
set=c("UUU","XXX","XXX","XXX","XXX","XXX"),
group=c("1","6","5","4","3","2"),
rate=as.numeric(c(10000,20000,50000,55000,75000,100000))
)
# explicitly defined id.vars
dat <- melt(tab, id.vars=c('set','group'))
dat$time <- factor(dat$group,levels=dat$group)
# added facet_wrap, in geom_bar aes changed weight to y,
# added stat="identity", changed position="stack"
ggplot(dat,aes(x=set)) +
geom_bar(aes(y=value,fill=group),position="stack", stat="identity", color="#7F7F7F") +
scale_fill_brewer("Groups", palette="OrRd") +
facet_wrap(~set, scale="free_x")
答案 1 :(得分:0)
我猜你需要的是树形图。如果我误解了你的问题,请纠正我。 这里有一个关于Treemapping的链接] 1
如果你需要树形图,你可以使用投资组合套餐或googleVis。