Jak zmienić kolory linii w ggplot2 (z przykładami)


Aby określić kolory linii w ggplot2, możesz użyć następującej podstawowej składni:

 ggplot(df, aes(x=x, y=y, group=group_var, color=group_var)) + 
    geom_line() +
    scale_color_manual(values=c(' color1 ', ' color2 ', ' color3 '))

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: zmień kolory linii w ggplot2

Załóżmy, że mamy następującą ramkę danych w R:

 #create data frame
df <- data. frame (store=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'),
                 week=c(1, 2, 3, 1, 2, 3, 1, 2, 3),
                 sales=c(9, 12, 15, 7, 9, 14, 10, 16, 19))

#view data frame
df

  store week sales
1 To 1 9
2 to 2 12
3 to 3 15
4 B 1 7
5 B 2 9
6 B 3 14
7 C 1 10
8 C 2 16
9 C 3 19

Załóżmy teraz, że tworzymy następujący wykres liniowy w ggplot2, aby zwizualizować całkowitą tygodniową sprzedaż w każdym sklepie:

 library (ggplot2)

#create line plot
ggplot(df, aes(x=week, y=sales, group=store, color=store)) + 
    geom_line(size= 2 ) 

Domyślnie ggplot2 używa domyślnej palety kolorów z czerwonym, zielonym i niebieskim dla linii.

Możesz jednak użyć funkcjiscale_color_manual () , aby określić własne kolory linii:

 library (ggplot2)

#create line plot
ggplot(df, aes(x=week, y=sales, group=store, color=store)) + 
    geom_line(size= 2 ) +
    scale_color_manual(values=c(' orange ', ' pink ', ' red ')) 

Kolory są teraz pomarańczowy, różowy i czerwony.

Pamiętaj, że do określenia kolorów możesz także użyć szesnastkowych kodów kolorów:

 library (ggplot2)

#create line plot
ggplot(df, aes(x=week, y=sales, group=store, color=store)) + 
    geom_line(size= 2 ) +
    scale_color_manual(values=c(' #063970 ', ' #A69943 ', ' #7843a6 ')) 

Kolory są teraz zgodne z wybranymi przez nas szesnastkowymi kodami kolorów.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w ggplot2:

Jak obracać etykiety osi w ggplot2
Jak zmienić rozmiar punktu w ggplot2
Jak dodać tekst do wykresów ggplot2

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *