所以我设法走到了这一步......
ggplot(init, aes(x=factor(ANGLE), fill=NETWORK)) +
geom_bar(aes(y = (..count..)/sum(..count..))) +
facet_wrap(~SHOW) + opts(legend.position = "top") +
scale_y_continuous(labels = percent_format())
我的问题是下面的彩色条代表了我研究中所有电视节目的所有摄像机角度测量值的百分比。例如,OREILLY 图形的条形图对于 ANGLE 2 而言接近 15%,对于图表中的所有 ANGLE 测量值(而不仅仅是 OREILLY 方面中的那些测量值),该条形接近 15%。我希望每张图显示的是相对于一个电视节目(仅一个方面)而不是所有电视节目的计数百分比。
这个想法是比较不同节目中摄像机角度的比例使用,但是按照现在的图表方式,使具有更多摄像机角度变化的节目看起来好像他们在摄像机角度 2 上花费的时间比在摄像机角度 2 上花费的时间要多实际上做相对于其他人。
令人沮丧的部分是我花了一个小时让它看起来像我想要的样子,然后我犯了更新 R 的错误。软件包随之更新,这发生了。
缩小尺寸的数据表是 available here .
编辑 : 这也行不通。我尝试将“group=NETWORK”放在 aes(..., ) 术语中的一个(和两个)中,但没有任何改变。我也用“group=SHOW”尝试了同样的事情,我认为这可能有更多的机会,因为我只想在每个方面为一个 SHOW 获得一个百分比(因此,每个方面的比例应该上升到大约 80 % 因为很多节目主要是摄像机角度 2)。我错过了什么吗?
ggplot(init, aes(x=factor(ANGLE), fill=NETWORK), group=SHOW)
+ geom_bar(aes(y = (..count..)/sum(..count..), group=NETWORK)) +
+ facet_wrap(~SHOW) + opts(legend.position = "top") +
+ scale_y_continuous(labels = percent_format())
最佳答案
使用 ..density..
stat 而不是 ..count..
似乎对我有用:
ggplot(dat, aes(x=factor(ANGLE))) +
geom_bar(aes(y = ..density..,group = SHOW,fill = NETWORK)) +
facet_wrap(~SHOW) +
opts(legend.position = "top") +
scale_y_continuous(labels = percent_format())
至少,这会产生不同的结果,我不能肯定地说它反射(reflect)了你想要的。此外,我不确定为什么
..count..
stat 就是这样表现的。关于r - 使用 ggplot2 获得反射(reflect)各个方面的百分比尺度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9614720/