Как подключить линейный сюжет для ggplot2 в гранях? - PullRequest
0 голосов
/ 08 октября 2019

enter image description here

Я получил неправильный график 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 для каждого фасета.

Использование «подмножество» не годится, пожалуйста, помогите мне.

...