默認情況下,堆疊式條形圖使用基於色相的色階來區分條的不同部分。由於我的堆棧對應的因子水平是有序的,我想使用梯度比例。ggplot2中堆疊條形圖的顏色漸變
這裏有一些虛構的調查問卷的數據
dfr <- data.frame(
question = c("Do you like R?", "How about Stack Overflow?"),
rubbish = c(2, 1),
so.so = c(7, 9),
yippee = c(41, 40)
)
mdfr <- melt(dfr, measure.vars = c("rubbish", "so.so", "yippee"))
這裏是一個可行的情節,但沒有漸變色標
p1 <- ggplot(mdfr, aes(question, value, fill = variable)) +
geom_bar(position = "stack") +
coord_flip()
如果我添加了漸變的規模,我得到告訴我,我應該使用一個數值變量,而不是分類。
p1 + scale_fill_gradient2()
#Error: Non-continuous variable supplied to scale_fill_gradient2.
如果我強迫填充顏色變量是數字,然後geom_bar
抱怨說,它應該被堆積分類變量
ggplot(mdfr, aes(question, value, fill = as.integer(variable))) +
scale_fill_gradient2() +
geom_bar(position = "stack") +
coord_flip()
#Error in pmin(y, 0) : object 'y' not found
是否有辦法解決這?
編輯:
睡在這個問題之後,我想到了一個手動的規模可能是答案,但我不能讓該工作無論是。
cols <- c(rubbish = "red", so.so = "white", yippee = "blue")
p1 + scale_colour_manual(values = cols)
# Manual scale silently ignored
您需要填寫,不變色,你可能是最好關閉與colourbrewer尺度之一。 – hadley 2010-09-17 11:24:05