R: линии графика отдельно по одной переменной, окрашенные по другой

Я уверен, что это было сделано много раз, но очевидно, что я не ищу, используя правильные термины.

У меня есть данные временных рядов в R с такими столбцами:

      country year      deaths         region global.region
1 Afghanistan 2006 0.095830775 Asia & Pacific  Global South
2 Afghanistan 1994 0.127597064 Asia & Pacific  Global South
3     Algeria 2000 0.003278038    Arab States  Global South
4     Algeria 2001 0.003230578    Arab States  Global South
5     Algeria 1998 0.006746176    Arab States  Global South
6     Algeria 1999 0.019952364    Arab States  Global South
...

По сути, я хочу построить все линии по странам, но я хочу, чтобы они были окрашены (и помечены в легенде) по регионам. Я надеюсь посмотреть на некоторые региональные тенденции в данных, не пытаясь построить усредненную модель (отчасти потому, что я хочу увидеть выбросы, отчасти потому, что по многим странам отсутствуют данные, и я думаю, что хорошая региональная модель может быть для меня трудной). сделать на данный момент, в лучшем случае просто вводящим в заблуждение).

Так что в итоге у меня будут, например, отдельные линии для Буркина-Фасо, Алжира и Кот-д'Ивуара, но все они будут оранжевыми. И у меня будут отдельные линии для Афганистана, Пакистана и Ирана, но все они будут синими.

Предпочтительно, чтобы это было сделано с помощью ggplot2, так как это библиотека построения графиков, которую я изучаю в данный момент. Но, может быть, в R есть стандартный способ сделать это, который работает во всех (большинстве) графических библиотеках?

Редактировать: Окончательное решение: групповая эстетика. (Спасибо @baptiste)

qplot(data=df, x=year, y=deaths, color=region, group=country) +
    geom_line() +
    xlab('Year') + ylab('Deaths per 100,000') + ggtitle('Deaths per 100,000 by country (WHO)')

Что делает:

Сюжет


person Anthony    schedule 18.07.2014    source источник
comment
попробуйте эстетику group   -  person baptiste    schedule 18.07.2014
comment
@baptiste До безобразия просто! Добавьте ответ, и я поставлю вам галочку. :)   -  person Anthony    schedule 18.07.2014


Ответы (2)


Немного отличается от желаемого результата, но вот оно..

ggplot(df, aes(x = year, y = deaths)) + 
  geom_line(aes(color = country, linetype = region))

сюжет

person talat    schedule 18.07.2014

Окончательное решение: групповая эстетика. (Спасибо @baptiste)

qplot(data=df, x=year, y=deaths, color=region, group=country) +
    geom_line() +
    xlab('Year') + ylab('Deaths per 100,000') + ggtitle('Deaths per 100,000 by country (WHO)')
person Anthony    schedule 20.07.2014