繁体   English   中英

Ggplot 与 facet_wrap 并填写 R

[英]Ggplot with facet_wrap and fill in R

我有每个专业和每个合同类型的产品数据集。

我想草拟每个专业和每个合同类型的产品数量。 我想查看每个合约的每个专业的单独图表(使用 facet_wrap)和单独的条形图(具有不同颜色)。

到目前为止,这是我所拥有的,但“按合同”部分不起作用。 我究竟做错了什么?

spec <- c(rep(1, 5), rep(2,5), rep(3,5))
prod <- c(rep(15, 3), rep(22, 5), rep(35,2), rep(44, 5))
contract <- sample(c(0,1), replace=TRUE, size=15)

dat <- data.frame(spec=spec, prod=prod, contract = contract)

library(ggplot2)
ggplot(dat, aes(prod), fill=contract) +
  geom_bar(position="dodge")+
  facet_wrap(~spec, scales="free")

首先,您应该将输入值转换为因子,因为这些是离散值。 这可以通过factor()获得。

ggplot()函数中,如果您想为每个合约设置条形,则必须使用aes(x = contract)并在aes() fill = prod以按产品分组。

如果我理解您的规范是正确的,此代码应该为您提供所需的解决方案:

library(ggplot2)

spec <- c(rep(1, 5), rep(2,5), rep(3,5))
prod <- c(rep(15, 3), rep(22, 5), rep(35,2), rep(44, 5))
contract <- sample(c(0,1), replace=TRUE, size=15)

dat <- data.frame(spec=factor(spec), 
                      prod=factor(prod), 
                      contract = factor(contract))


ggplot(dat) +
  geom_bar(aes(contract, fill=prod), position = "dodge")+
  facet_wrap(~spec, scales="free")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM