【问题标题】:Stacked bar plot using factor lists in base R使用基础 R 中的因子列表的堆积条形图
【发布时间】:2019-09-17 22:21:28
【问题描述】:

我希望制作一个堆积条形图来显示两个因素。我可以在这个网站上找到的解决这个问题的问题和答案都适用于似乎是矩阵格式并使用 ggplot2 的数据。我的数据在观察列表中,如下所示:

mydata = data.frame(V1=c("A","B","B","C","C"), V2=c("X","X","Y","Z","Z"))

我想在绘图的 x 轴上显示 V1 的类别,但堆叠以显示每个条形中 V2 的比例。

我可以使用plyr库中的“count”函数来查找每次观察的频率,

library(plyr)
mydata.count = count(mydata)

但我不知道如何构建我的 barplot 命令以按 V1 级别对数据进行分组:barplot(mydata.count$freq) 将 V1 和 V2 的所有组合分隔成单独的条。

如果可能,我想使用基本的 R barplot 函数创建此图,以便它与我研究中的其他图在视觉上保持一致。

【问题讨论】:

  • barplot(t(table(mydata)))
  • @d.b,谢谢,这正是我所需要的。你知道如何确定颜色是如何分配到因子水平的吗?
  • barplot(t(table(mydata)), col = c("cyan","darkred","navy"), legend.text = c("X","Y","Z")) 颜色已分配,但barplot 使用经过伽马校正的灰色调色板作为输出输入(即t(table(mydata)))是一个矩阵。

标签: r bar-chart


【解决方案1】:

这是ggplot的另一种可能性:

ggplot(as.data.frame(table(mydata)), aes(x=V1, y=Freq, fill=V2)) + geom_bar(stat="identity")

ggplot(as.data.frame(table(mydata)), aes(x=V2, y=Freq, fill=V1)) + geom_bar(stat="identity")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-05
    • 2021-06-10
    • 2013-12-19
    • 1970-01-01
    • 2020-07-17
    相关资源
    最近更新 更多