我有每个专业和每个合同类型的产品数据集。
我想根据每种专业和每种合同类型制定产品数量。我希望看到每个合同的每个专业的单独图表(使用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")
答案 0 :(得分:1)
首先,您应该将输入值转换为因数,因为这些是离散值。可以通过factor()
获得。
在ggplot()
函数中,如果要为每个合约添加条形,并且在aes(x = contract)
中包含fill = prod
以便按产品分组,则必须使用aes()
。
如果我理解您的规范正确,则此代码应为您提供所需的解决方案:
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")