gpt4 book ai didi

重新排序图例而不改变图上点的顺序

转载 作者:行者123 更新时间:2023-12-04 08:37:37 25 4
gpt4 key购买 nike

我一直在 ggplot2 中遇到这个问题,也许有人可以帮助我。

我有一个图,其中图例中变量的顺序与它们在图上的显示顺序相反。

例如:

df=data.frame(
mean=runif(9,2,3),
Cat1=rep(c("A","B","C"),3),
Cat2=rep(c("X","Y","Z"),each=3))

dodge=position_dodge(width=1)
ggplot(df,aes(x=Cat1,y=mean,color=Cat2))+
geom_point(aes(shape=Cat2),size=4,position=dodge)+
scale_color_manual(values=c("red","blue","black"))+
scale_shape_manual(values=c(16:19))+
coord_flip()

产生:

example

所以点在图上显示为 Cat2=Z,Y,然后是 X(黑色菱形,蓝色三角形,红色圆圈),但在图例中它们显示为 Cat2=X,Y,然后是 Z(红色圆圈,蓝色三角形,黑钻石)。

如何在不移动图上的点的情况下颠倒图例的顺序?对因子重新排序会产生相反的问题(图中的点颠倒了)。

谢谢!

最佳答案

为了充实哈德利的评论,我们会做这样的事情:

ggplot(df,aes(x=Cat1,y=mean,color=Cat2))+
geom_point(aes(shape=Cat2),size=4,position=dodge)+
scale_color_manual(values=c("red","blue","black"),breaks = c('Z','Y','X'))+
scale_shape_manual(values=c(16:19),breaks = c('Z','Y','X'))+
coord_flip()

enter image description here

请注意,我们必须在两个尺度中设置中断。如果我们只做一个,它们就不会匹配,ggplot 会将它们分成两个图例,而不是合并它们。

关于重新排序图例而不改变图上点的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7556320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com