geom_bar で作成された ggplot の凡例とプロットの両方でグループを並べ替えたいと思います。
ここに例があります
mydata <- data.frame(mygroup = c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
mysubgroup = c("north", "west", "south", "east", "north", "west", "south", "east"),
value = c(5,10,6,12, 4, 4, 3, 5))
私の出発点:
myplot <- ggplot(mydata, aes(mygroup, value, fill = mysubgroup)) +
geom_bar(position = "dodge", width = 0.5, stat = "identity")
myplot
凡例とバーの両方を「北」、「南」、「東」、「西」の順にプロットしたいと思います。
scale_fill_discrete(limits = c("north", "south", "east", "west"))
プロットに追加してみました。凡例は目的の順序で配置されますが、バーは配置されません (バーは再配置されます)。
myplot + scale_fill_discrete(limits = c("north", "south", "east", "west"))
データを並べ替えても、上記と同じ結果が得られます。
mydata2 <- mydata[c(1,3,4,2,5,7,8,6),]
myplot2 <- ggplot(mydata2, aes(mygroup, value, fill = mysubgroup)) +
geom_bar(position = "dodge", width = 0.5, stat = "identity")
myplot2 + scale_fill_discrete(limits = c("north", "south", "east", "west"))