/ / Nie pokazuj kształtu w legendzie kolorów na wykresie z 2 legendami (R ggplot2) - r, kolory, ggplot2, legenda, kształty

Nie pokazuj kształtu w legendzie kolorów na 2 legendzie (R ggplot2) - r, kolory, ggplot2, legenda, kształty

Na mojej fabule z 2 legendami (jedna dla kształtu i jedna dla koloru), mój szef myli się, że legenda kolorów już wybrała jeden z kształtów. Przykład:

a <- data.frame(name = c("A","B","C","D"),
type = c("dog","dog", "cat", "cat"),
location = c("house", "house", "house", "garden"),
count = c(3,1,5,8))

ggplot(a, aes(x=name, y=count, color=location, shape=type)) +
geom_point(size=7)

produkuje następujące elementy: wprowadź opis obrazu tutaj

W tym przykładzie legenda „lokalizacja” towyjaśnienie kolorów poprzez pokazanie kolorowych kół (ale kółka oznaczają także kota, co najwyraźniej jest mylące). Jak zmusić legendę „lokalizacji”, by JUST pokazywał kolor, a nie kształt? Może idealnym rozwiązaniem byłoby pokazanie lokalizacji jako czerwonych i niebieskich prostokątów.

Odpowiedzi:

4 dla odpowiedzi № 1

Możesz użyć funkcji guides() i override.aes= zmienić kształt na prostokąt dla legendy kolorów. Następnie możesz usunąć tło z klawiszy legendy, aby uzyskać lepszy wygląd theme().

ggplot(a, aes(x=name, y=count, color=location, shape=type)) +
geom_point(size=7)+
guides(color=guide_legend(override.aes=list(shape=15)))+
theme(legend.key=element_blank())

wprowadź opis obrazu tutaj


0 dla odpowiedzi nr 2

aby usunąć legendę kształtu, możesz wykonać następujące czynności:

ggplot(a, aes(x=name, y=count, color=location, shape=type)) + geom_point(size=7) + guides(shape=FALSE)

To usuwa legendę kształtu, ale nie jestem pewien, czy zmienić kształt w legendzie kolorów.