要被视为不同存储桶的列中的不同值范围并创建饼图R.

时间:2018-03-09 09:26:32

标签: r pie-chart

在数据框中,我有一个列,其值(价格)从1到500.我需要创建一个包含3个桶,1-10,10-50,大于100的饼图。 它应该显示它的百分比贡献。 如何在R?中做到这一点?

1 个答案:

答案 0 :(得分:0)

这对你有帮助:

library(tidyverse)

df <- as_tibble(seq(1,500)) %>% rename(price=value)

所以数据看起来像(它的愚蠢,但它的一个例子,使用你的数据):

# A tibble: 500 x 1
    price
    <int>
1     1
2     2
3     3
4     4
5     5
6     6
7     7
8     8
9     9
10    10
# ... with 490 more rows

比我们做的更多:

df %>%
  mutate(bucket=ifelse(price<=10, "1-10", 
                       ifelse(price>10 & price<=50, "11-50", "50<"))) %>% 
  count(bucket) %>%
  mutate(percent=n/nrow(df)*100) %>%
  ggplot(aes(x="", y=percent, fill=bucket)) +
  geom_bar(width = 1, stat = "identity") +
  coord_polar("y", start=0)

使用mutate我们定义存储桶和百分比。使用ifelse,我们只需说:if price = x,than将其标记为y,else执行...

结果图表:

enter image description here