Получение легенды для показа с помощью ggplot и plotly subplot - PullRequest
0 голосов
/ 21 декабря 2018

Я относительно новичок в R и экспериментировал с ним для создания интерактивных графиков с заговором в качестве альтернативы скучным графикам Excel.

Я делаю сюжет, состоящий из 4-х сюжетов, и у меня есть все, как мне хочется, кроме легенды.Из-за жизни я не могу найти легенду.В идеале мне бы хотелось, чтобы в нижней части каждого столбца была одна легенда, но я не могу нарисовать основную легенду ggplot.

p1 <- ggplot(ks,aes(x=date)) +
  geom_point(aes(y=ks$sdtw)) +
  geom_hline(yintercept=ks$avgs, color="red") +
  geom_hline(yintercept=ks$maxs, color="blue") +
  geom_hline(yintercept=ks$mins, color="green") +
  scale_x_date(expand = c(0,0)) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  scale_y_reverse(breaks = seq(8,11, by = 0.5)) 

p2 <- ggplot(ks, aes(x = date)) +
  geom_point(aes(y=ks$ddtw)) +
  geom_hline(yintercept=ks$avgd, color="red") +
  geom_hline(yintercept=ks$maxd, color="blue") +
  geom_hline(yintercept=ks$mind, color="green") +
  scale_x_date(expand = c(0,0)) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  scale_y_reverse(breaks=seq(8,10, by = 0.5)) 

p3 <- ggplot(ks, aes(x = date)) +
  geom_ribbon(aes(ymin = mins_h, ymax = maxs_h), 
          fill = "wheat2",
          color="black") +
  geom_line(aes(x=date, y=avgs_h), size=1,color="red") +
  geom_line(aes(x=date, y=avgsm_h), size=1.5, color="green")+
  coord_cartesian(xlim = c(hstart, hend)) +
  scale_x_date(expand = c(0,0)) +
  scale_y_reverse(breaks = seq(8,11, by = 0.5)) +
  theme(axis.text.x = element_text(angle = 45)) 

p4 <- ggplot(ks, aes(x = date)) +
  geom_ribbon(aes(ymin = mind_h, ymax = maxd_h), 
           fill = "wheat2",
           color="black") +
  geom_line(aes(x=date, y=avgd_h ), size=1,color="red") +
  geom_line(aes(x=date, y=avgdm_h), size=1.5, color="green") +
  coord_cartesian(xlim = c(hstart, hend)) +
  scale_x_date(expand = c(0,0)) +
  scale_y_reverse(breaks=seq(8,10, by = 0.5)) +
  theme(axis.text.x = element_text(angle = 45)) 

subplot(p1, p3, p2, p4,
    nrows = 2, shareX = TRUE, shareY = TRUE, heights = c(0.47, 0.47)) %>%
  layout(title = "Plot")

Я немного отредактировал код для краткости, ниже приведено то, чтоЯ получил.Любые предложения о том, что происходит с моим отсутствием легенды?

Link to plot

...