列中不同范围的值被视为不同的桶并创建饼图 R
different range of values in a column to be treated as different buckets and create pie chart R
在数据框中,我有一列值(价格)从 1 到 500。我需要创建一个饼图,其中包含 3 个桶,1-10、10-50,大于 100。
它应该显示对它的贡献百分比。
如何在 R 中执行此操作?
对你有帮助吗:
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
mark it as y, else
do ...
这是生成的图表:
在数据框中,我有一列值(价格)从 1 到 500。我需要创建一个饼图,其中包含 3 个桶,1-10、10-50,大于 100。 它应该显示对它的贡献百分比。 如何在 R 中执行此操作?
对你有帮助吗:
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
mark it as y, else
do ...
这是生成的图表: