繁体   English   中英

更改 R / ggplot2 中点的绘制顺序

[英]Changing plotting order of points in R / ggplot2

我有以下代码到 plot ggplot2 中的一个大数据集(450k)

x<-ggplot()+
  geom_point(data=data_Male,aes(x=a,y=b),color="Turquoise",position=position_jitter(w=0.2,h=1),alpha=0.1,size=.5,show.legend=TRUE)+
  geom_point(data=data_Female,aes(x=a,y=b),color="#FF9999",position=position_jitter(w=0.2,h=1),alpha=0.1,size=.5,show.legend=TRUE)+
  theme_bw()
x<-x+geom_smooth(data=data_Male,aes(x=a,y=b,alpha="Male"),method="lm",colour="Blue",linetype=1,se=T)+
  geom_smooth(data=data_Female,aes(x=a,y=b,alpha="Female"),method="lm",colour="Dark Red",linetype=5,se=T)+
  geom_smooth(data=data_All,aes(x=a,y=b,alpha="All"),method="lm",colour="Black",linetype=3,se=T)+
  scale_fill_discrete(name="Key",labels=c("Female","Male","All"))+
  scale_colour_discrete(name="Plot Colour",labels=c("Female","Male","All"))+
  scale_alpha_manual(name="Key",
                     values=c(1,1,1),
                     breaks=c("Female","Male","All"),
                     guide=guide_legend(override.aes=list(linetype=c(5,1,3),name="Key",
                                                          shape=c(16,16,NA),
                                                          color=c("Dark Red","Blue","Black"),
                                                          fill=c("#FF9999","Turquoise",NA))))

如何更改绘制点的顺序? 我在这里看到了处理单个 dataframe 的已回答问题,但我正在处理多个数据框,因此我无法重新排序行或根据 dataframe 中的某些标准向 ggplot 询问 plot。您可以看到此类问题的示例这导致在附图中:女性点被绘制在男性点之上。 理想情况下,我希望能够以随机顺序对所有点进行 plot,这样一个点的“云”就不会绘制在另一个点的顶部,从而掩盖它(注意显示的图像不包括“全部”线).

任何帮助,将不胜感激。 谢谢你。在此处输入图像描述

我相信这是不可能的。 以下应该可以工作:

您必须将两个数据框一起粘贴到df 新数据框将按男性和女性排序。

然后您可以对新数据框进行 suffle:

set.seed(42)
rows <- sample(nrow(df))
male_female_mixed <- df[rows, ]

那你可以plot male_female_mixed

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM