ggplot2:基于第三个变量对geom_point()中的双变量点排序?

时间:2019-02-17 16:23:26

标签: r ggplot2

考虑以下简单的示例数据,其中有两个连续变量和第三个因子变量:

x<-rnorm(10)
y<-rnorm(10)

z<-as.factor(1:10)

df<-data.frame(x,y,z)

如果要绘制x与y的关系图,则可以有一个如下所示的双变量图:

ggplot(df,aes(x,y,col=z))+geom_point(alpha=.2)+
  geom_text(data = df,label=z)

enter image description here

如果出于某种原因,我们希望按z对点进行排序,我们将如何做?也就是说,如果我们在x轴上水平移动,则无论变量x的顺序如何,我们都会拥有z1,z2,...,z10。

1 个答案:

答案 0 :(得分:2)

在分配标签z之前,您需要根据条件对数据进行排序:

library(ggplot2)

my.df <- my.df[order(my.df$x), ] 
my.df$z <- as.factor(1:10)

ggplot(my.df, aes(x, y, col = z)) +
  geom_point(alpha = .2) +
  geom_text(aes(label = z))

enter image description here

数据

set.seed(1) # With random numbers always use set.seed for reproducibility
my.df <- data.frame(x = rnorm(10), y = rnorm(10))