'尝试使用 geom_text 和 ggplot2 向条形图添加标签时缺少值 error/empty 数据
'Missing value error/empty data when trying to add labels to a bar chart using geom_text with ggplot2
我正在尝试向我使用 ggplot2 制作的堆叠条形图添加标签,但一直出现奇怪的错误。
我的 table 是这样的:
dd <- read.table(text = "ORIGIN ANIMAL SEX COUNT PR
1 Canada Dog M 3 37.5
2 Canada Dog F 5 62.5
3 Canada Bunny M 3 75
4 Canada Bunny F 1 25
5 US Bunny M 9 90
6 US Bunny F 1 10
7 US Dog M 3 50
8 US Dog F 3 50", sep = "", header = TRUE)
并做了图:
p <-ggplot() + geom_bar(data = dd, aes(y = PR, x = ANIMAL, fill = SEX),
stat = "identity", position='stack') +
labs( y = "Proportion", x = "") +
theme_bw() +
facet_grid( ~ ORIGIN)
正在生成:
我正在尝试向数据添加 COUNT 个标签,类似于此线程中所做的:
Showing data values on stacked bar chart in ggplot2
但是,当我尝试使用以下方法添加标签时:
p + geom_text(aes(labels = COUNT)
我收到错误:
Error in if (empty(data)) { : missing value where TRUE/FALSE needed
我已经尝试明确说明 geom_text 的所有布尔参数,但 R 只是忽略了未知的美学。
有谁能解释一下我做错了什么吗?
谢谢
您需要将常用参数移至主函数,特别是 data
和 x, y
美学。
library(ggplot2)
p <-ggplot(data = dd, aes(y = PR, x = ANIMAL)) +
geom_col(aes(fill = SEX), position='stack') +
labs( y = "Proportion", x = "") +
theme_bw() +
facet_grid( ~ ORIGIN)
p + geom_text(aes(label = COUNT), position=position_stack(vjust=0.5), color="white")
请注意 geom_col
等同于 geom_bar
和 stat="identity"
。您可能还想使用 position_stack()
中的 vjust
参数将标签调整到堆叠条的中心
我正在尝试向我使用 ggplot2 制作的堆叠条形图添加标签,但一直出现奇怪的错误。
我的 table 是这样的:
dd <- read.table(text = "ORIGIN ANIMAL SEX COUNT PR
1 Canada Dog M 3 37.5
2 Canada Dog F 5 62.5
3 Canada Bunny M 3 75
4 Canada Bunny F 1 25
5 US Bunny M 9 90
6 US Bunny F 1 10
7 US Dog M 3 50
8 US Dog F 3 50", sep = "", header = TRUE)
并做了图:
p <-ggplot() + geom_bar(data = dd, aes(y = PR, x = ANIMAL, fill = SEX),
stat = "identity", position='stack') +
labs( y = "Proportion", x = "") +
theme_bw() +
facet_grid( ~ ORIGIN)
正在生成:
我正在尝试向数据添加 COUNT 个标签,类似于此线程中所做的:
Showing data values on stacked bar chart in ggplot2
但是,当我尝试使用以下方法添加标签时:
p + geom_text(aes(labels = COUNT)
我收到错误:
Error in if (empty(data)) { : missing value where TRUE/FALSE needed
我已经尝试明确说明 geom_text 的所有布尔参数,但 R 只是忽略了未知的美学。
有谁能解释一下我做错了什么吗?
谢谢
您需要将常用参数移至主函数,特别是 data
和 x, y
美学。
library(ggplot2)
p <-ggplot(data = dd, aes(y = PR, x = ANIMAL)) +
geom_col(aes(fill = SEX), position='stack') +
labs( y = "Proportion", x = "") +
theme_bw() +
facet_grid( ~ ORIGIN)
p + geom_text(aes(label = COUNT), position=position_stack(vjust=0.5), color="white")
请注意 geom_col
等同于 geom_bar
和 stat="identity"
。您可能还想使用 position_stack()
vjust
参数将标签调整到堆叠条的中心