R语言 如何重新排序图例中的项目?

cedebl8k  于 2023-11-14  发布在  其他
关注(0)|答案(1)|浏览(144)


的数据
我应该修改默认图(名为scalesGraph001,基于dfscaled001.dat)到图B。我只需要改变flav的顺序和大小。然而,我尝试了很多,我没有改变顺序。这个df的前十行看起来像:

structure(list(flav = c("c", "v", "c", "c", "v", "v", "c", "v", 
    "c", "c"), top = c("c", "s", "n", "s", "c", "c", "n", "n", "c", 
    "c"), syr = c(TRUE, FALSE, TRUE, TRUE, FALSE, FALSE, TRUE, 
    FALSE, TRUE, TRUE), weight = c(13.1, 14.4, 11.4, 8.7, 6.2, 
    12.6, 5.1, 12.8, 10.9, 6.5), cal = c(1293.1, 1460.5, 1202.2, 
    844.4, 552.9, 1259.4, 520.6, 1308.1, 1084.5, 649.8)), row.names 
    = c(NA, 10L), class = "data.frame")

字符串
我的代码看起来像

p1 <- scalesGraph001 + 
    scale_size_manual(values = c('c' = 16,'s' = 12,'r' = 8, 'v' = 4)) + 
    scale_fill_discrete(breaks = c('c', 's', 'r', 'v'))
    print(p1)

bxpogfeg

bxpogfeg1#

图例的顺序由变量本身预先确定,因此将flav重新声明为factor,并使用factor()中的levels参数确定顺序。
如果dfdata.frame的名字,你想把它们按照 (v,c,r,s) 的顺序排列,那么你可以这样做:

df$flav=factor(df$flav,levels=c("v","c","r","s",))

字符串

相关问题