ggplot producing stacked bar when expecting a dodge chart
我有一个数据集,在一张表中显示产品、会计期间和交易。
1
2 3 4 5 |
app$FISCAL_PERIOD <-(201604,201604,201604,201605,201605,201605,201606,201606,201606,201607,201607,201607,201608,201608,201608,201609,201609,201610,201610,201611,201611)
app$Product <- c(“Product 1″,”Product 3″,”Other”,”Product 1″,”Product 3″,”Other”,”Product 1″,”Product 3″,”Other”,”Product 1″,”Product 3″,”Other”,”Product 1″,”Product 3″,”Other”,”Product 2″,”Product 3″,”Product 2″,”Product 3″,”Product 2″,”Product 3″) app$sum_trans<-c(78,23410,1946,84,29532,417,16,30364,129,305,32386,584,424,20873,274,20,20929,470,19261,10,6131) |
当我运行它时,我得到了我希望的图表,一个”躲避”的条形图:
ggplot(data=app, aes(x=FISCAL_PERIOD, y=sum_trans, fill=Product)) + geom_bar(stat=”identity”, position=position_dodge(), colour=”black”)
但是当我运行它时,我得到了一个堆积条形图,这不是我需要的:
ggplot(data=app, aes(x=Product, y=sum_trans, fill=FISCAL_PERIOD)) + geom_bar(stat=”identity”, position=position_dodge(), colour=”black”)
这可能是因为 ggplot 不将 FISCAL_PERIOD 变量理解为因子变量。这应该可以解决问题:
1
2 |
ggplot(data=app, aes(x=Product, y=sum_trans, fill=as.factor(FISCAL_PERIOD))) +
geom_bar(stat=”identity”, position=”dodge”, colour=”black”) |
来源:https://www.codenong.com/38418691/