首页 > 解决方案 > 如何在构面中连接 ggplot2 的线图?

问题描述

在此处输入图像描述

我得到了一个异常的 ggplot2 图


df$Group_order <- factor(df$Group, levels = c("A","C","D","U","R"))

datasetname.1 = "A"
datasetname.1.avg <- data.frame(x=length(df$Sample)*0.25,xend=length(df$Sample)*0.75,y=mean(subset(df, select=(Count), subset=(Group_order==datasetname.1))$Count),yend=mean(subset(df, select=(Count), subset=(Group_order==datasetname.1))$Count), Group_order=datasetname.1)
datasetname.1.med <- data.frame(x=length(df$Sample)*0.25,xend=length(df$Sample)*0.75,y=median(subset(df, select=(Count), subset=(Group_order==datasetname.1))$Count),yend=median(subset(df, select=(Count), subset=(Group_order==datasetname.1))$Count),Group_order=datasetname.1)

datasetname.2 = "C"
datasetname.2.avg <- data.frame(x=length(df$Sample)*0.25,xend=length(df$Sample)*0.75,y=mean(subset(df, select=(Count), subset=(Group_order==datasetname.2))$Count),yend=mean(subset(df, select=(Count), subset=(Group_order==datasetname.2))$Count), Group_order=datasetname.2)
datasetname.2.med <- data.frame(x=length(df$Sample)*0.25,xend=length(df$Sample)*0.75,y=median(subset(df, select=(Count), subset=(Group_order==datasetname.2))$Count),yend=median(subset(df, select=(Count), subset=(Group_order==datasetname.2))$Count),Group_order=datasetname.2)

datasetname.3 = "D"
datasetname.3.avg <- data.frame(x=length(df$Sample)*0.25,xend=length(df$Sample)*0.75,y=mean(subset(df, select=(Count), subset=(Group_order==datasetname.3))$Count),yend=mean(subset(df, select=(Count), subset=(Group_order==datasetname.3))$Count), Group_order=datasetname.3)
datasetname.3.med <- data.frame(x=length(df$Sample)*0.25,xend=length(df$Sample)*0.75,y=median(subset(df, select=(Count), subset=(Group_order==datasetname.3))$Count),yend=median(subset(df, select=(Count), subset=(Group_order==datasetname.3))$Count),Group_order=datasetname.3)

datasetname.4 = "U"
datasetname.4.avg <- data.frame(x=length(df$Sample)*0.25,xend=length(df$Sample)*0.75,y=mean(subset(df, select=(Count), subset=(Group_order==datasetname.4))$Count),yend=mean(subset(df, select=(Count), subset=(Group_order==datasetname.4))$Count), Group_order=datasetname.4)
datasetname.4.med <- data.frame(x=length(df$Sample)*0.25,xend=length(df$Sample)*0.75,y=median(subset(df, select=(Count), subset=(Group_order==datasetname.4))$Count),yend=median(subset(df, select=(Count), subset=(Group_order==datasetname.4))$Count),Group_order=datasetname.4)

datasetname.5 = "R"
datasetname.5.avg <- data.frame(x=length(df$Sample)*0.25,xend=length(df$Sample)*0.75,y=mean(subset(df, select=(Count), subset=(Group_order==datasetname.5))$Count),yend=mean(subset(df, select=(Count), subset=(Group_order==datasetname.5))$Count), Group_order=datasetname.5)
datasetname.5.med <- data.frame(x=length(df$Sample)*0.25,xend=length(df$Sample)*0.75,y=median(subset(df, select=(Count), subset=(Group_order==datasetname.5))$Count),yend=median(subset(df, select=(Count), subset=(Group_order==datasetname.5))$Count),Group_order=datasetname.5)


plot <- ggplot(df, aes(x=reorder(df$Count, df$Sample), y=df$Count, group=1)) + 
  geom_line(color="brown", size=1.3)+
  theme_bw() +
  theme(panel.grid = element_blank())+
  geom_vline(xintercept = 1, color="lightgrey")+
  geom_vline(xintercept = length(df$Sample)*1/4, color="lightgrey")+
  geom_vline(xintercept = length(df$Sample)*2/4, color="lightgrey")+
  geom_vline(xintercept = length(df$Sample)*3/4, color="lightgrey")+
  geom_vline(xintercept = length(df$Sample)*4/4, color="lightgrey")+
  geom_hline(yintercept = 100, color="lightgrey")+
  geom_hline(yintercept = 0, color="lightgrey")+
  geom_hline(yintercept = 25, color="lightgrey")+
  geom_hline(yintercept = 50, color="lightgrey")+
  geom_hline(yintercept = 75, color="lightgrey")+
  geom_hline(yintercept = 125, color="lightgrey")+
  geom_hline(yintercept = 150, color="lightgrey")+
  geom_hline(yintercept = 175, color="lightgrey")+
  geom_hline(yintercept = 200, color="lightgrey")+
  #theme(axis.text.x = element_blank())+
  theme(axis.text.x = element_text(angle=90))+
  theme(axis.text.y = element_text(face="bold", size = 13)) +
  theme(axis.title.y = element_text(color="black",face="bold"), axis.ticks = element_blank())+
  xlab("")+
  ylab("Count")+
  scale_y_continuous(limits=c(0,205), expand=c(0,0)) +
  geom_segment(data=datasetname.1.avg, aes(x=x, y=y, yend=yend, xend=xend), inherit.aes = FALSE, size=1.5, color="mediumseagreen")+
  geom_segment(data=datasetname.1.med, aes(x=x, y=y, yend=yend, xend=xend), inherit.aes = FALSE, size=1.5, color="dodgerblue4")+
  geom_segment(data=datasetname.2.avg, aes(x=x, y=y, yend=yend, xend=xend), inherit.aes = FALSE, size=1.5, color="mediumseagreen")+
  geom_segment(data=datasetname.2.med, aes(x=x, y=y, yend=yend, xend=xend), inherit.aes = FALSE, size=1.5, color="dodgerblue4")+
  geom_segment(data=datasetname.3.avg, aes(x=x, y=y, yend=yend, xend=xend), inherit.aes = FALSE, size=1.5, color="mediumseagreen")+
  geom_segment(data=datasetname.3.med, aes(x=x, y=y, yend=yend, xend=xend), inherit.aes = FALSE, size=1.5, color="dodgerblue4")+
  geom_segment(data=datasetname.4.avg, aes(x=x, y=y, yend=yend, xend=xend), inherit.aes = FALSE, size=1.5, color="mediumseagreen")+
  geom_segment(data=datasetname.4.med, aes(x=x, y=y, yend=yend, xend=xend), inherit.aes = FALSE, size=1.5, color="dodgerblue4")+
  geom_segment(data=datasetname.5.avg, aes(x=x, y=y, yend=yend, xend=xend), inherit.aes = FALSE, size=1.5, color="mediumseagreen")+
  geom_segment(data=datasetname.5.med, aes(x=x, y=y, yend=yend, xend=xend), inherit.aes = FALSE, size=1.5, color="dodgerblue4")+
  theme(strip.text.x = element_text(colour = "black",face = "bold",size = 13))+
  facet_wrap(~Group_order, ncol=5)

plot

没有错误消息,但线图看起来坏了。

特别是,每个方面的 x 轴名称都是相同的。

我应该怎么办?

“无标度”没有帮助。

事实上,我真正想做的是为每个方面设置不同的 x 轴。

使用“子集”不好,请帮帮我。

标签: rfacet

解决方案


推荐阅读