【问题标题】:One ggplot from two data frames (1 bar each)来自两个数据框的一个 ggplot(每个 1 个条形图)
【发布时间】:2016-12-05 17:37:28
【问题描述】:

我到处都在寻找答案,但我就是找不到这个问题的答案(也许我太愚蠢了,无法使用其他答案,因为我是 R 新手)。

我有两个行数不同的数据框。我想创建一个图,每个数据帧包含一个条形图。两者应该具有相同的长度,并且不同变量的计数应该相互堆叠。例如:我想将这些数据集中的性别比例进行比较。

t1<-data.frame(cbind(c(1:6), factor(c(1,2,2,1,2,2)))) t2<-data.frame(cbind(c(1:4), factor(c(1,2,2,1))))

1代表男性,2代表女性 我想创建两个彼此相邻的条形图,表示第一个数据框中的性别比例为 2:4,第二个数据框中的性别比例为 2:2。

我的尝试是这样的:

ggplot() + geom_bar(aes(1, t1$X2, position = "fill")) + geom_bar(aes(1, t2$X2, position = "fill"))

这会导致错误:“错误:stat_count() 不得与 y 美学一起使用。”

【问题讨论】:

  • 请阅读此stackoverflow.com/help/mcve 并相应地编辑您的问题。您可以使用函数dput 提供您的日期,以便重现您的问题。

标签: ggplot2 geom-bar


【解决方案1】:

首先我应该合并两个数据框。您需要添加一个变量来识别数据的来源,在两个数据框中添加一个带有 ID 的列(如 t1 和 t2)。请记住,您的列名在两个框架中是相同的,因此您将能够使用函数 rbind。

t1$data <- "t1"
t2$data <- "t2"
t <- (rbind(t1,t2))

现在你可以制作情节了:

ggplot(t[order(t$X2),], aes(data, X2, fill=factor(X2))) +        
geom_bar(stat="identity", position="stack")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-07
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    相关资源
    最近更新 更多