I am not entire sure what you are asking; I am confused. But, if you use scale_fill_grey()
, whatever comes first on the x-axis will be dark. That is, even when you reorder the levels of your factor for the axis, you will end up seeing the first bar plot has dark colour. As long as I see from your question, you may want to manually assign colours to bars. Hope this will let you move forward.
# 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"))

Now I change the order of the cities and draw another figure. But, the colors are still assigned in the alphabetical order.
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"))
