Changing the colours of a melted df in ggplot
本问题已经有最佳答案,请猛点这里访问。
我正在尝试更改以下ggplot的颜色,但发现很难做到...
1 2 3 4 5 6 7 8 | mm <- melt(CashCycle, id= c('Ticker', 'Date')) mm <- mm[mm$variable =="CollectionPeriod" | mm$variable =="DaysofInventory" | mm$variable =="DaysofPayable",] mm$value <- with(mm, ifelse(variable =="DaysofPayable", -value, value)) ggplot(data = mm, aes(x = Date, y = value, fill = variable)) + geom_bar(stat = 'identity', position = 'dodge') + labs(x="Year", y="Days") + theme_bw() + guides(color=guide_legend("Legend")) |
我想设置标准为
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | structure(list(Ticker = c("GOOG","GOOG","GOOG","GOOG","GE", "GE","GE","GE","HOG","HOG","HOG","HOG"), Date = c(2017, 2016, 2015, 2014, 2017, 2016, 2015, 2014, 2017, 2016, 2015, 2014 ), CollectionPeriod = c(61.5878850750981, 57.5447536334633, 67.7003960580885, 59.9973485250224, 73.0579967729518, 71.0453384212398, 84.0229160454913, 72.3776710131076, 157.424759439158, 143.734811872338, 140.084289622044, 126.828872394842), DaysofInventory = c(5.99752100563807, 2.78388069895839, 0, 0, 84.1604875945267, 89.3934679478049, 96.688883921218, 75.6542499589885, 57.0743314700106, 50.7784397810473, 60.7847464805146, 44.1958495635379 ), DaysofPayable = c(25.119123357392, 21.2011212931869, 25.0253870188894, 24.7293880614704, 58.1710472344051, 57.7254500235557, 58.7476763065628, 51.6094654449157, 24.1362278754634, 23.9021892488319, 24.4431638276767, 19.3838681657801), CashCollectionCycle = c(42.4662827233442, 39.1275130392348, 42.6750090391992, 35.267960463552, 99.0474371330733, 102.713356345489, 121.964123660146, 96.4224555271804, 190.362863033705, 170.611062404553, 176.425872274881, 151.6408537926), DaysofPayableAccExp = c(140.473312419104, 126.188741533383, 132.501065189604, 132.486074349149, 129.045057268166, 124.748556528218, 126.496458573546, 105.229078296735, 75.3037584111009, 70.6634116884237, 71.3490152830795, 60.6347718419888), CashCollectionCycleAccExp = c(-72.8879063383675, -65.860107200961, -64.8006691315152, -72.4887258241263, 28.173427099312, 35.6902498408272, 54.2153413931629, 42.8028426753607, 139.195332498067, 123.849839964962, 129.520020819479, 110.389950116391)), .Names = c("Ticker", "Date","CollectionPeriod","DaysofInventory","DaysofPayable", "CashCollectionCycle","DaysofPayableAccExp","CashCollectionCycleAccExp" ), row.names = c(NA, -12L), class ="data.frame") |
使用
1 2 3 4 5 6 | ggplot(data = mm, aes(x = Date, y = value, fill = variable)) + geom_bar(stat = 'identity', position = 'dodge') + scale_fill_manual(values = c("red","blue","orange")) + labs(x="Year", y="Days") + theme_bw() + guides(color=guide_legend("Legend")) |