Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:ggplot2-Label像模糊一样打印每一行,而不仅仅是值的总和_R_Ggplot2 - Fatal编程技术网

R:ggplot2-Label像模糊一样打印每一行,而不仅仅是值的总和

R:ggplot2-Label像模糊一样打印每一行,而不仅仅是值的总和,r,ggplot2,R,Ggplot2,我只需要把每个小节顶部的“会话数”加起来。但我明白了: 这是我的代码: ggplot(VisitasData, aes(factor(Fuentes), sessions, fill = Fuentes)) + geom_bar(stat="identity", position = "dodge") + geom_text(aes(label = comma(sessions)), position=position_dodge(width=0.9), vj

我只需要把每个小节顶部的“会话数”加起来。但我明白了:

这是我的代码:

ggplot(VisitasData, aes(factor(Fuentes), sessions, fill = Fuentes)) + 
        geom_bar(stat="identity", position = "dodge") +
        geom_text(aes(label = comma(sessions)), position=position_dodge(width=0.9), vjust=-0.25) +
        scale_fill_manual(breaks = c("0", "1", "3", "6", "9"),
                          labels = c("Directo", "Email", "References",
                                     "SEO", "Social Media"),
                          values = c("#E69F00", "#56B4E9", "#009E73", 
                                     "#F0E442", "#0072B2"))

如果没有看到您的数据,我无法确定,但以下是发生的情况,用一些虚假数据说明:

# Fake data
set.seed(23)
dat = data.frame(cat=rep(LETTERS[1:3], each=4), value=sample(100:1000, 12))

   cat value
1    A   619
2    A   300
3    A   398
4    A   738
5    B   835
6    B   479
7    B   962
8    B   974
9    C   850
10   C   988
11   C   871
12   C   724

# Analogous to your plot
ggplot(dat, aes(cat, value, fill=cat)) +
  geom_bar(stat="identity", position="dodge", alpha=0.25) + 
  geom_text(aes(label=value))

上面发生的事情是,
ggplot
为每一行数据添加了一个条形图。因此,有四个条形图过度绘制,正如您所看到的,这是因为
alpha=0.25
参数使条形图透明
ggplot
这样做是因为
stat=“identity”
告诉
ggplot
按原样获取数据,而不应用任何转换。但是如果没有
stat=“identity”
geom\u bar
将抛出一个错误,因为
geom\u bar
的默认
stat
stat=“bin”
(这意味着创建行计数的柱状图),并且您不能将变量映射到
y
,也不能使用
stat=“bin”
(柱状图也不是您想要的)

相反,您需要告诉
ggplot
先对每个类别中的值求和,然后再绘制和。例如:

ggplot(dat, aes(cat, value, fill=cat)) +
  stat_summary(fun.y=sum, geom="bar", position="dodge") + 
  stat_summary(fun.y=sum, geom="text", aes(label=..y..))


您还可以在
ggplot
之外创建摘要数据框,然后将摘要数据框馈送到
ggplot
。然后使用
geom\u bar(stat=“identity”)
获得所需的条形图

你能给我们看一下你的数据样本吗?谢谢@eipi10,我从dplyr做了一个总结,然后绘制了图表。再次感谢。