我在ggplot2中手动设置直方图条的顺序,因此它们不会按照从左到右的字母顺序列出:
p + xlim("second", "first", "third")
然后当我用
设置颜色时p + scale_fill_grey()
条形图按字母顺序着色最暗到最亮。我可以让他们填写#34;第二个"到第一个"到第三个"?或者甚至将不同的条形图组合成相同的颜色?
答案 0 :(得分:1)
我不完全确定你在问什么;我很迷惑。但是,如果你使用scale_fill_grey()
,那么x轴上的第一个将是黑暗的。也就是说,即使您重新排列轴的因子水平,您最终也会看到第一个条形图具有深色。只要我从您的问题中看到,您可能需要手动为条形指定颜色。希望这会让你前进。
# I create a sample data, which you should provide when you ask a question.
location <- c("London", "Paris", "Madrid")
value <- runif(3, 15,30)
foo <- data.frame(location, value, stringsAsFactors = F)
foo$location <- factor(foo$location)
# Colors are assigned in the alphabetical order of the cities.
ggplot(foo, aes(x = location, y = value, fill = location)) +
geom_bar(stat="identity") +
scale_fill_manual(values=c("black", "grey", "white"))
现在我改变城市的顺序并绘制另一个数字。但是,颜色仍然按字母顺序分配。
foo$location <- factor(foo$location, levels = c("Paris", "Madrid", "London"))
ggplot(foo, aes(x = location, y = value, fill = location)) +
geom_bar(stat="identity") +
scale_fill_manual(values=c("white", "grey", "black"))
答案 1 :(得分:1)
我认为您可以使用limits()
中的scale_fill_grey()
手动更改颜色的顺序。这应该推翻标准订单,并应用您使用limits()
手动设置的订单。
p + scale_fill_grey(limits = c("second", "first", "third"))