首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >尝试使用填充美学绘制两个直方图时出现问题

尝试使用填充美学绘制两个直方图时出现问题
EN

Stack Overflow用户
提问于 2019-05-28 01:44:31
回答 2查看 71关注 0票数 2

我一直在尝试通过使用填充美学和具有两个级别的特定列来绘制两个直方图。然而,我的代码并没有同时显示两个所需的直方图,而是显示了一个包含所有数据的直方图,而另一个直方图只显示了第二个分类。我不知道我的语法是否有问题,也不知道这是不是一个棘手的问题。

代码语言:javascript
复制
    library(tidyverse)

    db1 <- data.frame(type=rep("A",100),val=rnorm(n=100,mean=50,sd=10))
    db2 <- data.frame(type=rep("B",150),val=rnorm(n=150,mean=50,sd=10))
    dbf <- bind_rows(db1,db2)

    P1 <- ggplot(db1, aes(x=val)) + geom_histogram()
    P2 <- ggplot(db2, aes(x=val)) + geom_histogram()
    PF <- ggplot(dbf, aes(x=val)) + geom_histogram()

我想要得到这个,P1和P2

代码语言:javascript
复制
ggplot(db1, aes(x=val)) + geom_histogram(fill="red", alpha=0.5) + geom_histogram(data=db2, aes(x=val),fill="green", alpha=0.5)

我想要的

但是我认为应该可以使用的代码是,P1和P2以及列val的填充美学

代码语言:javascript
复制
ggplot(dbf, aes(x=val)) + geom_histogram(aes(fill=type), alpha=0.5)

我的代码

生成PF和P2的组合

代码语言:javascript
复制
ggplot(dbf, aes(x=val)) + geom_histogram(fill="red", alpha=0.5) + geom_histogram(data=db2, aes(x=val),fill="green", alpha=0.5)

我得到了什么

任何帮助或想法都将受到高度赞赏!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-28 02:22:51

您需要做的就是将position = "identity“传递给geom_histogram函数。

代码语言:javascript
复制
library(tidyverse)
library(ggplot2)

db1 <- data.frame(type=rep("A",100),val=rnorm(n=100,mean=50,sd=10))
db2 <- data.frame(type=rep("B",150),val=rnorm(n=150,mean=50,sd=10))
dbf <- bind_rows(db1,db2)

ggplot(dbf, aes(x=val, fill = type)) + geom_histogram(alpha=0.5, position = "identity")

票数 1
EN

Stack Overflow用户

发布于 2019-05-28 02:24:31

您的目标是通过颜色组合来显示重叠吗?我不确定如何强制geom_histogram显示重叠,但geom_density确实做了您想要的事情。您可以使用带宽(bw)来显示或多或少的细节。

代码语言:javascript
复制
dbf %>% ggplot() +
  aes(x = val, fill = type) +
  geom_density(alpha = .5, bw = .5) +
  scale_fill_manual(values = c("red","green"))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56330434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档