0
我手动设置的GGPLOT2我柱状图的顺序,所以他们不只是按字母顺序列表使用类似左至右:在GGPLOT2改变颜色填充为了
p + xlim("second", "first", "third")
后来,当我设置颜色为
p + scale_fill_grey()
酒吧的颜色按照字母顺序最深到最浅。我可以让他们按顺序从“第二”到“第一”到“第三”?或者甚至将不同的酒吧分组为相同的颜色?
我手动设置的GGPLOT2我柱状图的顺序,所以他们不只是按字母顺序列表使用类似左至右:在GGPLOT2改变颜色填充为了
p + xlim("second", "first", "third")
后来,当我设置颜色为
p + scale_fill_grey()
酒吧的颜色按照字母顺序最深到最浅。我可以让他们按顺序从“第二”到“第一”到“第三”?或者甚至将不同的酒吧分组为相同的颜色?
我不完全确定你在问什么;我很困惑。但是,如果您使用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"))
这是有帮助的。手动着色正是我想要手动着色的。但至于自动填色,我在寻找稍微不同的东西。在你的例子中,第一个情节有黑色的灰色白色。然后当你重新排列酒吧时,伦敦仍然是黑色,马德里灰色和巴黎白色。有没有办法自动让最左边的酒吧是黑色的,中间是灰色和最右边的白色,无论您将酒吧放在什么顺序?谢谢。 – 2014-09-11 04:25:31
@TheNightman现在你想让它变得清晰。如果这是你想要的,你想在第二个例子中使用'scale_fill_grey()'。然后,左边的任何城市都会有你想要的最黑的颜色。 – jazzurro 2014-09-11 04:44:27
所以'scale_fill_grey()'是我正在使用的,但是它会按照字母顺序填充条形,而不管它们沿着x轴的顺序。有什么我需要传递给'scale_fill_grey()'使它从左到右填充? – 2014-09-11 15:09:40