【问题标题】:How to plot a specific row in R using ggplot?如何使用 ggplot 在 R 中绘制特定行?
【发布时间】:2021-03-24 07:37:20
【问题描述】:

我是 R 代码的新手,我正在做一个情节练习。我做了40个组的dataframe测试,每个组有五个成员,每个成员都有一个数字,所以数据会是这样的:

Group    Member1    Member2    Member3    Member4    Member5
1          10         13         7          8           9   
2          6          3          1          12          5
.
.
.
39         10        10          21         6           1
40         9         13          18         7           15

我想为包含所有成员的特定行绘制条形图,例如第 20 组,我想绘制:

Group    Member1    Member2    Member3    Member4    Member5
20          5         7          12          29         4   

我试过了:

ggplot(test,aes(x=Group,y=Member1)) + geom_bar(data=subset(test,Group==20),'identity')

ggplot(subset(test,Group==20),aes(x=Group,y=Member1)) + geom_bar('identity')

两者都不正确,我应该使用 factor() 使列名成为因子吗?
我通过使用多个 +geom_line 或 geom_bar 将其组合在一起来绘制 sucu 多列图,但它不适用于特定行。我想我用错误的方法来解决这个问题。还有其他更好的代码和方法吗? 感谢您的回答和分享。

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    首先使用pivot_longer将您的数据转换为长格式

    然后mutate Member 分解

    然后filter 想要的组

    然后绘制

    library(tidyverse)
    df1 <- df %>% 
      pivot_longer(cols = -Group,
                   names_to = "Member",
                   values_to = "value"
                     ) %>% 
      mutate(Member = as.factor(Member)) %>% 
      filter(Group == 1)
    
    ggplot(data = df1, aes(x = Member, y=value)) +
      geom_bar(stat="identity", color="blue", fill="white")
    

    数据:

    library(tidyverse)
    df <- tribble(
      ~Group,    ~Member1,    ~Member2,    ~Member3,    ~Member4,    ~Member5,
    1, 10, 13, 7, 8, 9, 
    2, 6, 3, 1, 12, 5, 
    39, 10, 10, 21, 6, 1, 
    40, 9, 13, 18, 7, 15)
    

    • 替代所有组
    df2 <- df %>% 
      pivot_longer(cols = -Group,
                   names_to = "Member",
                   values_to = "value"
      ) %>% 
      mutate(Member = as.factor(Member),
             Group = as.factor(Group))
      
    p<-ggplot(df2, aes(x=Member, y=value, fill=Group)) +
      geom_bar(position="dodge",stat="identity")+theme_minimal()
    p
    
    

    【讨论】:

    • 非常感谢,我终于学会了如何绘制这种图
    猜你喜欢
    • 2021-04-11
    • 2021-11-26
    • 1970-01-01
    • 2021-07-23
    • 2020-11-19
    • 1970-01-01
    • 2018-06-22
    • 2016-10-20
    • 1970-01-01
    相关资源
    最近更新 更多