簡體   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