8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

ggplot2 条形图中的顺序条形图

André Lehto 2月前

247 0

我正在尝试制作一个条形图,其中最大的条形最靠近 y 轴,最短的条形最远。所以这有点像表格,我有姓名位置 1 James

我正在尝试制作一个条形图,其中最大的条形最靠近 y 轴,最短的条形最远。所以这有点像我的表格

    Name   Position
1   James  Goalkeeper
2   Frank  Goalkeeper
3   Jean   Defense
4   Steve  Defense
5   John   Defense
6   Tim    Striker

因此,我尝试构建一个条形图,以显示按位置划分的球员人数

p <- ggplot(theTable, aes(x = Position)) + geom_bar(binwidth = 1)

但图表首先显示守门员栏,然后是防守栏,最后是前锋栏。我希望图表按顺序排列,以便防守栏最靠近 y 轴,然后是守门员栏,最后是前锋栏。谢谢

帖子版权声明 1、本帖标题:ggplot2 条形图中的顺序条形图
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由André Lehto在本站《sorting》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 就像 reorder() Alex Brown 的回答一样,我们也可以使用 forcats::fct_reorder() 。它基本上会根据应用指定函数后的第二个参数中的值对第一个参数中指定的因子进行排序(默认值 = 中位数,我们在这里使用它,因为每个因子级别只有一个值)。

    遗憾的是,在 OP 的问题中,所需的顺序也是按字母顺序排列的,因为这是创建因素时的默认排序顺序,因此会隐藏此函数的实际作用。为了更清楚起见,我将用“Zoalkeeper”替换“Goalkeeper”。

    library(tidyverse)
    library(forcats)
    
    theTable <- data.frame(
                    Name = c('James', 'Frank', 'Jean', 'Steve', 'John', 'Tim'),
                    Position = c('Zoalkeeper', 'Zoalkeeper', 'Defense',
                                 'Defense', 'Defense', 'Striker'))
    
    theTable %>%
        count(Position) %>%
        mutate(Position = fct_reorder(Position, n, .desc = TRUE)) %>%
        ggplot(aes(x = Position, y = n)) + geom_bar(stat = 'identity')
    

    enter image description here

返回
作者最近主题: