Posiadanie takich działek takich jak to:

df <- data.frame(stock = c("google", "google", "amazon", "amazon", "amazon", "yahoo", "yahoo", "yahoo"), status = c("open", "close", "open", "buy", "close", "open", "buy", "close"), category = c("daily", "daily", "daily", "daily", "daily", "daily", "daily", "daily"), price = c(330379.36, 52324.62, 545240.22, 192574.83, 46721.34, 477658.62, 146724.44, 42721.78))

Spisek1:

plot1 <- ggplot(df,8 aes(fill=stock, y=reorder(price, status), x= status)) +
  geom_bar(position="dodge", stat="identity") +
  ggtitle("Daily") +
  theme(axis.text.x = element_text(angle = 45, vjust = 0, hjust=0)) +
  geom_text(aes(label=price), position = position_dodge(width= 1), vjust=0.5) + 
  scale_fill_manual(values = c("#492ecb",  "#5041ae", "#ff53aa"))

Spisek2:

plot2 <- ggplot(df,8 aes(fill=stock, y=reorder(price, status), x= status)) +
  geom_bar(position="dodge", stat="identity") +
  ggtitle("Daily") +
  theme(axis.text.x = element_text(angle = 45, vjust = 0, hjust=0)) +
  geom_text(aes(label=price), position = position_dodge(width= 1), vjust=0.5) + 
  scale_fill_manual(values = c("#492ecb",  "#5041ae", "#ff53aa"))

Plot3:

plot3 <- ggplot(df,8 aes(fill=stock, y=reorder(price, status), x= status)) +
  geom_bar(position="dodge", stat="identity") +
  ggtitle("Daily") +
  theme(axis.text.x = element_text(angle = 45, vjust = 0, hjust=0)) +
  geom_text(aes(label=price), position = position_dodge(width= 1), vjust=0.5) + 
  scale_fill_manual(values = c("#492ecb",  "#5041ae", "#ff53aa"))

I dodając je na jedną działkę:

plot_grid(plot1, plot2, plot3, ncol=3, nrow=1)

Jak można było mieć legendę tylko raz? Legenda opiera się na estetycznych wypełnień

2
foc 20 lipiec 2020, 18:50

1 odpowiedź

Najlepsza odpowiedź

Możesz spróbować tego, jeśli problem ma zbyt wiele legend (więc nie będzie konflikt z użyciem fill dla działek):

library(patchwork)

plot1+plot2+plot3+plot_layout(guides = 'collect')

enter image description here

1
Duck 20 lipiec 2020, 16:44