关于r:在ggplot中更改融化的df的颜色

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"))

我想设置标准为c("Red","Blue","Orange"),但是我尝试的所有内容似乎都被覆盖。

dput被称为CashCycle

dput代码:

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")

使用scale_fill_manual

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"))