gpt4 book ai didi

r - ggplot2, geom_bar, dodge, 条的顺序

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

我想在 dodge geom_bar 中订购条形图。你知道怎么处理吗?

我的代码:

ttt <- data.frame(typ=rep(c("main", "boks", "cuk"), 2),
klaster=rep(c("1", "2"), 3),
ile=c(5, 4, 6, 1, 8, 7))

ggplot()+
geom_bar(data=ttt, aes(x=klaster, y=ile, fill=typ),
stat="identity", color="black", position="dodge")

以及示例图以更好地理解问题:

我有什么:

我想要的东西:

最佳答案

一个选择是创建一个新变量来表示条形图在每个组中的顺序,并将此变量添加为绘图中的 group 参数。

有很多方法可以完成创建变量的任务,这里是使用 dplyr 中的函数的一种方法。新变量基于在每个 klaster 组中按降序对 ile 进行排名。如果你在任何组中有领带,你会想弄清楚在这种情况下你想做什么(在给定的领带中条形图应该以什么顺序排列?)。您可能希望将 rank 中的 ties.method 参数设置为远离默认值,可能是 "first""random"

library(dplyr)
ttt = ttt %>%
group_by(klaster) %>%
mutate(position = rank(-ile))
ttt
Source: local data frame [6 x 5]
Groups: klaster [2]

typ klaster ile rank position
(fctr) (fctr) (dbl) (dbl) (dbl)
1 main 1 5 3 3
2 boks 2 4 2 2
3 cuk 1 6 2 2
4 main 2 1 3 3
5 boks 1 8 1 1
6 cuk 2 7 1 1

现在只需将 group = position 添加到您的绘图代码中即可。

ggplot() +
geom_bar(data=ttt, aes(x=klaster, y=ile, fill=typ, group = position),
stat="identity", color="black", position="dodge")

enter image description here

关于r - ggplot2, geom_bar, dodge, 条的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50020591/

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