ggplot2线和点的绘制顺序

关于如何在ggplot2中的数据顶部绘制一条特定的线或点,这里有很多问题。当前,geom_point(取决于data.frame的实际顺序)和geom_line(取决于因子水平)的处理方式不同。

我想知道是否有人知道他们为什么与众不同,是否有任何计划来改变它们。我希望知道为什么,然后它可以使它更令人难忘,因为当前每次我想要更改打印顺序时,我都会感到沮丧。

基于几年前的这个问题,我举了一个例子来说明这一点

Change the overlaying order of lines in ggplot

请注意,我并不是在问怎么做(您可以在下面看到我知道如何做),而是要更多地了解为什么会这样(因此我不认为据我所知,这个问题是重复的)

library(ggplot2)
  #data
pl_data <- structure(list(x = c(1,1.5,2,1,1.3,1.4,1.51,1.31,2),y = c(0,0.5,0.7,0.7),col = c("r","r","b","g","g")),row.names = c(NA,-11L),class = c("tbl_df","tbl","data.frame"))


#starting plot
plt1 <- ggplot(pl_data,aes(x = x,y = y,color = col)) +
  geom_line(size = 3)+
  scale_colour_manual(values = c("r"="Red","b"="blue","g"="green"))

#change factor to change lines
pl_data2 <- pl_data
pl_data2$col <- factor(pl_data2$col,c("g","b"))

plt2 <- plt1 %+% pl_data2

#But the points are still the same way around as in original
plt1 + geom_point(size = 5)

ggplot2线和点的绘制顺序

plt2 + geom_point(size = 5)

ggplot2线和点的绘制顺序

#reorder data to chnage the points
pl_data3 <- pl_data2[order(pl_data2$col),]

plt3 <- plt1 %+% pl_data3
plt3+ geom_point(size = 5)

ggplot2线和点的绘制顺序

reprex package(v0.3.0)于2019-11-12创建

d21qgu9p 回答:ggplot2线和点的绘制顺序

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3119821.html

大家都在问