0

我有一个简单的数据集:

d1 <- c(">2000ppm", ">1000ppm", "<1000ppm", "<450ppm", ">2000ppm", ">1000ppm", "<1000ppm", "<450ppm") 
d2 <- c("S3", "S3", "S3", "S3", "S4", "S4", "S4", "S4") 
d3 <- c(0.0, 16.6, 83.4, 14.4, 0.8, 40.7, 59.3, 13.0)
B <- data.frame(d1,d2,d3)
colnames(B) <- c("Category", "Room", "Value")
View(B)

数值是百分比,>1000ppm和<1000ppm的比例之和自然是100%。

这是我到目前为止所拥有的:

B$Category <- factor(B$Category, c("<450ppm", "<1000ppm", ">1000ppm", ">2000ppm"))

ggplot(B, aes(x=Room, y=Value, fill=Category)) +
  geom_bar(position="fill", stat="identity") +
  scale_fill_brewer()

我想在条形图上有标签。我怎么做..?

>2000ppm的比例包含在>1000ppm中

– <450ppm 当然也包括在 <1000ppm 的比例中。

很难检查我是否正确制作了条形图......

如何为标签构造 geom_text?

我想变化是这样的:看图片上的红色.. http://www.bygningsfysik.dk/wp-content/uploads/2015/02/Test-3.png

4

1 回答 1

0

这是一种方法:

library(dplyr)
B %>% 
  group_by(Room) %>% 
  mutate(perc = Value / sum(Value)) %>%
  mutate(pos = cumsum(perc) - (0.5 * perc))  %>%
  ggplot(aes(x=Room, y=perc, fill=Category)) +
    geom_bar(position="fill", stat="identity") +
    scale_fill_brewer() + 
    geom_text(aes(label = sprintf("%.1f", Value), y = pos), colour = "red", size = 4) +
    labs(y = "Value")

在此处输入图像描述

来源

于 2015-02-26T09:14:28.280 回答