标签: geom-bar

堆积的条形图

我想使用ggplot2和geom_bar创建一个堆积图表.

这是我的源数据:

Rank F1     F2     F3
1    500    250    50
2    400    100    30
3    300    155    100
4    200    90     10
Run Code Online (Sandbox Code Playgroud)

我想要一个堆积图表,其中x是等级,y是F1,F2,F3中的值.

# Getting Source Data
  sample.data <- read.csv('sample.data.csv')

# Plot Chart
  c <- ggplot(sample.data, aes(x = sample.data$Rank, y = sample.data$F1))
  c + geom_bar(stat = "identity")
Run Code Online (Sandbox Code Playgroud)

这是我能得到的.我不确定如何堆叠其余的字段值.

也许我的data.frame格式不好?

r ggplot2 geom-bar

44
推荐指数
3
解决办法
12万
查看次数

自定义具有不同颜色的ggplot2轴标签

我有一个基本的条形图,我是从ggplot2创建的.y变量包含正值和负值,大约一半的矢量值为负值.我想自定义轴标签,以便当相应的x因子的y值为负时,其标签为红色.这是一个可重复的例子:

#Create data
x <- c("a","b","c","d","e","f")
y <- c("10", "9","-10","11","-3","-15")
data <- data.frame(x, y)
data$y <- as.numeric(as.character(data$y))

data$category <- ifelse(as.numeric(data$y)<0, 0, 1)
data$category <- as.factor(data$category)

#Graph
library(cowplot) #theme
library(ggplot2)

ggplot(data, aes(x=x, y=y)) + 
  geom_bar(stat = "identity", aes(fill=category)) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  theme(axis.text.x = element_text(colour = "black"))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我需要的是一种将"c","e"和"f"的标签颜色更改为我选择的颜色的方法.我试过切换,theme(aes(axis.text.x=element_text(colour=Air_pricier)))但这产生了一个错误.提前致谢.

r ggplot2 geom-bar

32
推荐指数
3
解决办法
2万
查看次数

使用g中的ggplot2更改geom_bar中的条形图颜色

我有以下内容,以条形图数据框.

c1 <- c(10, 20, 40)
c2 <- c(3, 5, 7)
c3 <- c(1, 1, 1)
df <- data.frame(c1, c2, c3)
ggplot(data=df, aes(x=c1+c2/2, y=c3)) +
  geom_bar(stat="identity", width=c2) +
  scale_fill_manual(values=c("#FF6666"))
Run Code Online (Sandbox Code Playgroud)

我最终只有灰色条纹:条形图的灰色条纹

我想改变酒吧的颜色.我已经尝试过来自http://www.cookbook-r.com/Graphs/Colors_(ggplot2)/的不同scale_fill_manual, 但仍然有灰色条.

谢谢您的帮助.

r colors ggplot2 geom-bar

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

ggplot geom_bar:aes的意思(group = 1)

我正在r4ds.had.co.nz的 3.7节学习geom_bar.我运行这样的代码:

library(ggplot2)
ggplot(data = diamonds) + geom_bar(mapping = aes(x = cut, y = ..prop.., group = 1))
Run Code Online (Sandbox Code Playgroud)

然后我有这个情节: 点击这里

关键是,如果我排除"group = 1"部分:

library(ggplot2)
ggplot(data = diamonds) + geom_bar(mapping = aes(x = cut, y = ..prop..))
Run Code Online (Sandbox Code Playgroud)

情节错了, 像这样

但是如果我用group = 2或group ="x"替换group = 1,那么该图仍然看起来正确.所以我不太明白group = 1的含义以及如何使用它.

r ggplot2 geom-bar

26
推荐指数
1
解决办法
9256
查看次数

geom_text如何根据需要在文本上定位文本?

我想调整条形图上的文字.

我试图调整hjust/vjust以显示我喜欢它但似乎它不能正常工作.

ggplot(data) + 
        geom_bar(aes(name, count, 
        fill = week), stat='identity', position = 'dodge') +
        geom_text(aes(name,count, 
        label=count),hjust=0.5, vjust=3, size=2,
        position = position_dodge(width = 1)) + 
        coord_flip()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

所以我希望数字位于每个条形图上,中间位于右边缘,因此它的可读性不会像最后一部分那样重叠.

r ggplot2 geom-bar geom-text

26
推荐指数
2
解决办法
4万
查看次数

ggplot2和带有负值的堆积条形图

给定以下数据集:

   Division Year OperatingIncome
1  A  2012           11460
2  B  2012            7431
3  C  2012           -8121
4  D  2012           15719
5  E  2012             364
6  A  2011           12211
7  B  2011            6290
8  C  2011           -2657
9  D  2011           14657
10 E  2011            1257
11 A  2010           12895
12 B  2010            5381
13 C  2010           -2408
14 D  2010           11849
15 E  2010             517
Run Code Online (Sandbox Code Playgroud)

如何在ggplot2中完成包含负值的堆积条形图?这是我正在使用的基本图表序列:

ggplot(income_m, aes(x=Year, y=OperatingIncome, fill=Division)) + geom_bar() +
+ scale_fill_brewer(type = "seq", palette = 1)
Run Code Online (Sandbox Code Playgroud)

这会返回一个错误: …

r ggplot2 geom-bar

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

ggplot条形图与分面依赖的类别顺序

我已经看到很多问题(通常与ggplot2条形图中的订单栏相关)关于如何(重新)在条形图中对类别进行排序.

我所追求的只是一个不同的触摸,但我还没有找到一个好方法:我有一个多面条形图,我想根据另一个变量独立地为每个面定购x轴(在我的例子中,该变量只是y值本身,即我只希望条形在每个方面增加长度).

简单示例,遵循例如ggplot2条形图中的订单栏:

df <- data.frame(name=c('foo','bar','foo','bar'),period=c('old','old','recent','recent'),val=c(1.23,2.17,4.15,3.65))
p = ggplot(data = df, aes(x = reorder(name, val), y = val))
p = p + geom_bar(stat='identity')
p = p + facet_grid(~period)
p
Run Code Online (Sandbox Code Playgroud)

我们得到的是以下内容: 在此输入图像描述

而我想要的是: 在此输入图像描述

r ggplot2 geom-bar

18
推荐指数
3
解决办法
2万
查看次数

ggplot用geom_bar中的百分比替换计数

我有一个数据帧d:

> head(d,20)
   groupchange Symscore3
1            4         1
2            4         2
3            4         1
4            4         2
5            5         0
6            5         0
7            5         0
8            4         0
9            2         2
10           5         0
11           5         0
12           5         1
13           5         0
14           4         1
15           5         1
16           1         0
17           4         0
18           1         1
19           5         0
20           4         0
Run Code Online (Sandbox Code Playgroud)

我正在密谋:

ggplot(d, aes(groupchange, y=..count../sum(..count..),  fill=Symscore3)) +
  geom_bar(position = "dodge") 
Run Code Online (Sandbox Code Playgroud)

通过这种方式,每个条形表示其在整个数据上的百分比.

相反,我希望每个条形代表相对百分比; 即获得的柱的总和groupchange …

r ggplot2 geom-bar

16
推荐指数
3
解决办法
4万
查看次数

ggplot2:geom_text使用geom_bar中的plot和force/fit文本调整大小

这实际上是两个问题中的一个(不确定是否违反SO规则,但无论如何).

第一个问题是我如何强迫一个geom_text适合geom_bar?(动态根据绘制的值)

环顾四周,我发现的解决方案正在改变标签的大小.这当然有效,但不适用于所有情况.您可以更改特定绘图的大小以使文本适合条形,但是当数据更改时,您可能需要再次手动更改文本的大小.我现实生活中的问题是,我需要为不断变化的数据(每日)生成相同的图,所以我无法真正手动调整每个图的大小.

我尝试将标签的大小设置为数据的函数.它有点工作,不完美,但适用于许多情况.

但这是另一个问题,即使标签适合栏内,重新调整情节会使一切变得混乱.调查一下,我也在ggplot文档中找到了

标签确实有高度和宽度,但它们是物理单位,而不是数据单位.它们在该绘图上占用的空间量在数据单位中不是恒定的:当您调整绘图大小时,标签保持相同的大小,但轴的大小会发生变化.

这让我想到了第二个问题:是否可以更改此默认行为并让/使图表调整大小?

还让我提炼我的第一个问题.是否可以强制a geom_text适合a geom_bar,使用物理单位和数据单元之间的聪明关系动态设置文本的大小?

所以,为了遵循良好的做法,这是我可重复的例子:

set.seed(1234567)
data_gd <- data.frame(x = letters[1:5], 
                      y = runif(5, 100, 99999))

ggplot(data = data_gd,
       mapping = aes(x = x, y = y, fill = x)) +
    geom_bar(stat = "identity") +
    geom_text(mapping = aes(label = y, y = y/2))
Run Code Online (Sandbox Code Playgroud)

此代码生成此图:

在此输入图像描述

如果我只是简单地调整绘图大小," 标签保持相同的大小,但轴的大小会发生变化 ",从而使标签适合条形图(现在标签甚至可能太小).

在此输入图像描述

所以,这是我的第二个问题.标签调整大小并保持纵横比相对于条形图会很好.任何想法如何实现这一点或是否有可能?

好的,但回到如何在条形图中标注标签,最简单的解决方案是设置标签的大小.

ggplot(data = data_gd,
       mapping = aes(x = x, y = y, fill = x)) +
    geom_bar(stat = …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 geom-bar geom-text ggproto

15
推荐指数
2
解决办法
4285
查看次数

如何使用ggplot2将频率计数标签添加到条形图中的条形图?

我想将[r]因子变量的频率分布绘制为条形图,其中条形表示因子水平的频率计数.我使用ggplot2来做到这一点并没有问题.

我无法弄清楚的是如何将频率计数标签添加到条形图中的条形图上.我尝试过的语法如下:

ggplot(data, aes(x = factorvar)) + geom_bar(fill = "somecolor") + geom_text(aes(y = ???))
Run Code Online (Sandbox Code Playgroud)

我想我已经彻底搜索了stackoverflow和W.Chang的"R Graphics Cookbook",但我找不到任何具体的答案,我应该在上面的geom_text()的美学中与"y"匹配.我尝试了一些变体,如:(y = ..count ..),但它不起作用.

我将不胜感激任何帮助.谢谢...

r ggplot2 geom-bar geom-text

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

标签 统计

geom-bar ×10

ggplot2 ×10

r ×10

geom-text ×3

colors ×1

ggproto ×1