相关疑难解决方法(0)

每个方面的总和百分比 - 尊重"填充"

我正在尝试创建一个刻面的条形图,每个方面的百分比加起来为100.这个问题的解决似乎是一个组合group..density...然而 - 在我看来,这group与之相矛盾fill.

数据:

test <- data.frame(
     test1 = sample(letters[1:2], 100, replace = TRUE), 
     test2 = sample(letters[3:8], 100, replace = TRUE)
 )
Run Code Online (Sandbox Code Playgroud)

这使得百分比正确:

ggplot(test, aes(test2)) +
     geom_bar(aes(y = ..density.., fill=test2,group=test1)) + 
     facet_grid(~test1)
Run Code Online (Sandbox Code Playgroud)

您可以看到的总线fill被覆盖: 每个方面的百分比总和为100

但是,下面的代码尊重fill但给我错误的百分比(整个图表的总和为100)(使用..density ..):

ggplot(test, aes(test2)) +
     geom_bar(aes(y = ..count../sum(..count..), fill=test2)) + 
     facet_grid(~test1)
Run Code Online (Sandbox Code Playgroud)

总图表的百分比总和为100

相关:我的这个老问题:在一个刻面的ggplot条形图中y实验室的百分比?.

是的 - 我可以创建其他数据,但我觉得这属于表示层.实际上这感觉就像一个bug?

r ggplot2

14
推荐指数
1
解决办法
5138
查看次数

在 ggplot 中,如何仅打印条形图中特定条形上方的计数?

我发现并被引导到许多帖子,显示如何将统计数据放置在 ggplot 中条形图的所有条形上方,但我还没有找到一个显示如何仅显示条形图中一个条形上方的计数/百分比的帖子。

例如下面的图:

ggplot(mtcars, aes(x = gear)) + geom_bar() +
  geom_text(stat='count',aes(label=..count..),vjust=-1)
Run Code Online (Sandbox Code Playgroud)

mtcars 条形图

我怎样才能在中间栏上方打印“12”并禁止打印“5”和“15”。我想显示上面计数的条形图会因图而异(例如,在另一个图中,我想显示 5 个条形图中第四大条形上方的统计数据)。

r bar-chart ggplot2

3
推荐指数
1
解决办法
2776
查看次数

geom_text 适用于 R 中的直方图?

想知道是否geom_text适用hist?尝试了以下代码,似乎没有效果。在为每个直方图桶绘制每个条时,我只想显示标签(属于特定直方图桶的元素数量)。任何解决方案表示赞赏。谢谢。

p <- hist(df$foo,
          main="title",xlab="foo")
p + geom_text()
Run Code Online (Sandbox Code Playgroud)

编辑 1,试过geom_bar,这是我的代码,它似乎工作不正常,因为我希望每个条上都标有一个数字。在图中,它只显示 2.5、5、7.5 和 10,我希望为每个条显示 1、2、3、...、9、10。

g <- ggplot(df, aes(df$foo))
g + geom_bar()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

问候, 林

r histogram ggplot2

2
推荐指数
1
解决办法
2850
查看次数

使用stat_frequency获取计数

我有一个例程来创建一些图ggplot:

getPlotList = function(param.list, data=db, y, color){
  param.list %>% sapply(function(var){
    ggplot(data=data, aes(x=data[[var]], y=data[[y]], color=data[[color]]))+
      stat_summary(fun.y = mean, fun.ymin = function(x){mean(x) - sem(x)}, fun.ymax = function(x){mean(x) + sem(x)}, geom = "errorbar", width=.1, position = position_dodge(0.3), na.rm = TRUE) +
      stat_summary(fun.y = mean, geom = "point", position = position_dodge(0.3), na.rm = TRUE) +
      ylim(0, NA) +
  }, simplify = FALSE, USE.NAMES = TRUE)
}
Run Code Online (Sandbox Code Playgroud)

我用的是这样的:

c("col1", "col2", "col3") %>% getPlotList(y="col4", color="col5")
Run Code Online (Sandbox Code Playgroud)

这完美地工作(我有几十个绘图),并给出这样的结果(但没有n = ...标签): 我的情节

问题是,我的计数对于每种颜色都是相同的,但它可以随x变化.
由于存在错误栏(如果n = 1或n = 0则不会显示),我必须在标签中显示计数,就像我在图片上所做的那样(使用Paint). …

label r ggplot2

0
推荐指数
1
解决办法
143
查看次数

标签 统计

ggplot2 ×4

r ×4

bar-chart ×1

histogram ×1

label ×1