R 条形图绘制不同序列长度的DNA频率

R 条形图绘制不同序列长度的DNA频率,r,ggplot2,R,Ggplot2,我将下面的数据帧df理解为df您可以通过可变长度将数据帧融合为长格式,并使用ggplot2绘制堆叠条形图: 您可以通过可变长度将数据帧融合为长格式,并使用ggplot2绘制堆叠条形图: 使用dplyr计算每个基准的频率,使用ggplot2绘制条形图。我更喜欢使用stat=identity,position=dodge,而不是仅使用stat=identity,因为它可以更好地感知数据的外观 library(tidyverse) gather(df, Base, value, -length) %

我将下面的数据帧df理解为df您可以通过可变长度将数据帧融合为长格式,并使用ggplot2绘制堆叠条形图:


您可以通过可变长度将数据帧融合为长格式,并使用ggplot2绘制堆叠条形图:

使用dplyr计算每个基准的频率,使用ggplot2绘制条形图。我更喜欢使用stat=identity,position=dodge,而不是仅使用stat=identity,因为它可以更好地感知数据的外观

library(tidyverse)

gather(df, Base, value, -length) %>%
    group_by(length) %>%
    mutate(frequency = value / sum(value)) %>%
    ggplot(aes(factor(length), y = frequency, fill = Base))+
        geom_bar(stat = "identity", position = "dodge",
                 color = "black", width = 0.6) +
        labs(x = "Base pairs", 
             y = "Frequency",
             fill = "Base") +
        scale_y_continuous(limits = c(0, 1)) +
        scale_fill_brewer(palette = "Set1") +
        theme_classic()
使用dplyr计算每个基准的频率,使用ggplot2绘制条形图。我更喜欢使用stat=identity,position=dodge,而不是仅使用stat=identity,因为它可以更好地感知数据的外观

library(tidyverse)

gather(df, Base, value, -length) %>%
    group_by(length) %>%
    mutate(frequency = value / sum(value)) %>%
    ggplot(aes(factor(length), y = frequency, fill = Base))+
        geom_bar(stat = "identity", position = "dodge",
                 color = "black", width = 0.6) +
        labs(x = "Base pairs", 
             y = "Frequency",
             fill = "Base") +
        scale_y_continuous(limits = c(0, 1)) +
        scale_fill_brewer(palette = "Set1") +
        theme_classic()

直方图用于连续随机变量。你想要一个条形图吗?您希望输出是什么样子的?如果您不知道需要什么输出,那么这确实不是一个适合堆栈溢出的编程问题。您可以在或其他堆栈交换站点上寻求统计数据可视化方面的帮助。是的,我认为这是混淆,我需要一个条形图。Thanks@MAPK我用频率更新了我的答案plot@MAPK有解决你问题的方法吗?直方图是连续随机变量的。你想要一个条形图吗?您希望输出是什么样子的?如果您不知道需要什么输出,那么这确实不是一个适合堆栈溢出的编程问题。您可以在或其他堆栈交换站点上寻求统计数据可视化方面的帮助。是的,我认为这是混淆,我需要一个条形图。Thanks@MAPK我用频率更新了我的答案plot@MAPK有解决你问题的方法吗?
library(tidyverse)

gather(df, Base, value, -length) %>%
    group_by(length) %>%
    mutate(frequency = value / sum(value)) %>%
    ggplot(aes(factor(length), y = frequency, fill = Base))+
        geom_bar(stat = "identity", position = "dodge",
                 color = "black", width = 0.6) +
        labs(x = "Base pairs", 
             y = "Frequency",
             fill = "Base") +
        scale_y_continuous(limits = c(0, 1)) +
        scale_fill_brewer(palette = "Set1") +
        theme_classic()