Załóżmy, że mam następujące ramki danych:wiele linii każdorazowo w innym dataframe w ggplot2 - automatyczne kolorowanie i legenda
df1 = data.frame(c11 = c(1:5), c12 = c(1:5))
df2 = data.frame(c21 = c(1:5), c22 = (c(1:5))^0.5)
df3 = data.frame(c31 = c(1:5), c32 = (c(1:5))^2)
Chcę wykreślić je jako linie w tym samym Działka/panelu. Mogę to zrobić przez:
p <- ggplot() + geom_line(data=df1, aes(x=c11, y = c12)) +
geom_line(data=df2, aes(x=c21,y=c22)) +
geom_line(data=df3, aes(x=c31, c32))
Wszystkie te elementy będą czarne. Jeśli chcę je w innym kolorze, mogę określić kolor jawnie jako argument dla geom_line()
. Moje pytanie brzmi: czy mogę określić listę kilku kolorów, powiedzmy 5 kolorów, takich jak czerwony, niebieski, zielony, pomarańczowy, szary, i użyć tej listy, aby nie trzeba było jawnie określać kolorów jako argumentu dla geom_line() w przypadku każdej linii. Jeśli na wykresie p
znajdują się 2 instrukcje geom_line(), to zostaną one odpowiednio oznaczone kolorem czerwonym i niebieskim. Jeśli zawiera 3 instrukcje geom_line, będzie je kolorem czerwonym, niebieskim i zielonym. Na koniec, jak mogę określić legendę dla tych wykresów. Nawet jeśli mogę podać kolory jako wektor pod koniec p
, byłoby świetnie. Proszę dać mi znać, jeśli pytanie nie jest jasne.
Dzięki.
+1 Czystsze wersją moją odpowiedź ... – joran
@Chase. Dzięki! Jednak podany przez ciebie przykład kreśli pojedynczą linię, a nie trzy różne linie. Przypuszczam, że mogę zająć się tym, dodając 'group = L1' jako argument do' aes() '. Problem z tą legendą. Czy możesz spróbować? Legenda nie ma sensu. Legenda zawiera więcej niż trzy klucze. – Curious2learn
@Curious - Jaka jest struktura twoich prawdziwych danych? Uruchomienie powyższego kodu daje trzy linijki z legendą, która wydaje mi się intuicyjna ... Zaktualizuję swoją odpowiedź słowem "newData" i przedstawię fabułę, którą widzę. Nie wiesz, dlaczego otrzymujesz coś innego, chyba że Twoje dane nie są reprezentatywne dla przykładowych danych. W razie potrzeby możesz wymusić L1, choć nie powinno to stanowić problemu. – Chase