我试图更改图例项目的显示顺序。我在这上花了大约一个小时,没有结果。
以下是一个示例设置:
library(ggplot2)
set.seed(0)
d <- data.frame(x = runif(3), y = runif(3), a = c('1', '3', '10'))
这是我尝试过的众多事情之一:
ggplot(d, aes(x = x, y = y)) +
geom_point(size=7, aes(color = a, order = as.numeric(a)))
(我天真的希望,当然,传奇项目将以数字顺序显示:1,3,10。)
答案 0 :(得分:18)
ggplot
通常会根据因素的levels()
对您的因子值进行排序。你最好确保这是你想要的顺序,否则你将在R中使用很多功能,但是你可以通过操纵色标来手动改变它:
ggplot(d, aes(x = x, y = y)) +
geom_point(size=7, aes(color = a)) +
scale_color_discrete(breaks=c("1","3","10"))
答案 1 :(得分:5)
可以通过将a
列中的值重新排序并更改为因子来管理图例标签的顺序:d$a <- factor(d$a, levels = d$a)
所以你的代码看起来像这样
library(ggplot2)
set.seed(0)
d <- data.frame(x = runif(3), y = runif(3), a = c('1', '3', '10'))
d$a <- factor(d$a, levels = d$a)
ggplot(d, aes(x = x, y = y)) +
geom_point(size=7, aes(color = a))
注意,比现在的传说:1是红色,3是绿色,10是蓝色