gpt4 book ai didi

r - 使用 geom_bar 按列中一个特定值的计数对 y 轴进行排序

转载 作者:行者123 更新时间:2023-12-05 09:01:04 25 4
gpt4 key购买 nike

想知道如何通过减少 kiwi 的数量来对 y 轴上的簇进行排序?

df = data.frame()
df = data.frame(matrix(df, nrow=200, ncol=2))
colnames(df) <- c("cluster", "name")
df$cluster <- sample(20, size = nrow(df), replace = TRUE)
df$fruit <- sample(c("banana", "apple", "orange", "kiwi", "plum"), size = nrow(df), replace = TRUE)

p = ggplot(df, aes(x = as.factor(cluster), fill = as.factor(fruit)))+
geom_bar(stat = 'count') +
theme_classic()+
coord_flip() +
theme(axis.text.y = element_text(size = 20),
axis.title.x = element_text(size = 20),
axis.title.y = element_text(size = 20),
axis.text=element_text(size=20)) +
theme(legend.text = element_text(size = 20)) +
xlab("Cluster")+
ylab("Fruit count") +
labs( fill = "")
p

enter image description here

最佳答案

我可能会在绘图之前将其作为数据操作来执行。请注意,我已将 kiwi 移动到堆叠顺序的第一个位置,因此我们可以看到随着我们沿 y 轴向下移动,条形变小。

library(tidyverse)

df %>%
mutate(cluster = factor(cluster,
names(sort(table(fruit == 'kiwi', cluster)[2,]))),
fruit = factor(fruit, c('kiwi', 'apple', 'banana',
'orange', 'plum'))) %>%
ggplot(aes(x = cluster, fill = fruit))+
geom_bar(position = position_stack(reverse = TRUE)) +
theme_classic()+
coord_flip() +
theme(axis.text.y = element_text(size = 20),
axis.title.x = element_text(size = 20),
axis.title.y = element_text(size = 20),
axis.text=element_text(size=20)) +
theme(legend.text = element_text(size = 20)) +
scale_fill_manual(values = c('olivedrab', 'yellowgreen', 'yellow2',
'orange2', 'plum4')) +
xlab("Cluster")+
ylab("Fruit count") +
labs( fill = "")

enter image description here

关于r - 使用 geom_bar 按列中一个特定值的计数对 y 轴进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74447218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com