gpt4 book ai didi

通过对数据子集进行排序来重新排序 x 轴变量

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

我正在尝试制作一个堆积条形图,并且我想根据来自单个类别的数据对 x 轴上的变量重新排序。在下面的示例中,有三个 x 值,每个值都有对应于三个类别的值。如何在对名称值进行排序以增加“bb”丰度的同时绘制图形。

虽然这个问题和其他关于reordering的问题类似categorical variables这里的区别在于排序基于一列数据的子集。任何建议表示赞赏。

#create the dataframe
name = c('a', 'a', 'a', 'b', 'b', 'b','c','c','c')
cat = c("aa", "bb", "cc", "aa", "bb", "cc","aa", "bb", "cc")
percent = c( 5 , 5, 90, 40, 40 , 20, 90,5,5)
df = data.frame(name, cat, percent)

#stacked barchart with default ordering
ggplot(df, aes(x=name,y=percent, fill=cat)) + geom_bar(position="fill")

#I'm looking to reorder the x-axis by the `percent` values for category "bb"
vals = df[ df$cat == 'bb', ] #subset
xvals = vals[with(vals, order(percent)), ]$name #get values
ggplot(df, aes(x =reorder(name, xvals ), y = percent, fill=cat])) + geom_bar(position="fill") #order with new values

最佳答案

df$name2 <- factor(df$name, levels = xvals)
ggplot(df, aes(x = name2, y = percent, fill = cat)) +
geom_bar(stat = "identity", position = "fill")

enter image description here

关于通过对数据子集进行排序来重新排序 x 轴变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20411506/

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