我有一个折线图,我想重新排列图例中显示的因子的排列方式。我试过scale_fill_discrete
,但它不会改变顺序。 这里是我的问题的一个模拟:ggplot2:图例中的更改因子顺序
df <- data.frame(var1=c("F", "F", "F", "B", "B", "B"),
var2=c("levelB", "levelC", "levelA"),
value=c("2.487585", "2.535944", "3.444764", "2.917308", "2.954155","3.739049"))
p <- ggplot(data=df, aes(x=var1, y=value,
group=var2, colour=var2, shape = var2)) +
geom_line(size = 0.8) +
geom_point()+
xlab("var1") + ylab("Value") +
scale_x_discrete(limits=c("F","B")) +
theme(legend.title = element_text(size=12)) +
theme(legend.text = element_text(size=10)) +
scale_fill_discrete(breaks=c("levelB","levelC","levelA")) +
theme(title = element_text(size=12)) +
blank + scale_color_manual(values=c("green2", "red", "black")) +
theme(legend.key = element_blank())
p
它创建这样的:
我想一切都保持完全一致,除了传奇,在这里我想改变顺序为levelB
,然后levelC
,然后levelA
。 我猜ggplot2
按字母顺序排列图例,我想重写这个。 重新排序我的数据框不起作用,scale_fill_discrete
也不会改变它。 任何想法?
谢谢!
[控制ggplot2图例显示顺序]可能的副本(http://stackoverflow.com/questions/11393123/controlling-ggplot2-legend-display-order) – jeremycg
不是重复的,因为该问题涉及多个图例的排序,而不是在图例内部排序。 – kneijenhuijs