R: Plot garis secara terpisah oleh satu variabel, diwarnai oleh variabel lain

Saya yakin ini sudah dilakukan berkali-kali, tapi yang jelas saya tidak menelusuri menggunakan istilah yang benar.

Saya memiliki beberapa data deret waktu di R dengan kolom seperti ini:

      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
...

Pada dasarnya, saya ingin memplot semua garis berdasarkan negara, tetapi saya ingin garis tersebut diwarnai (dan diberi label dalam legenda) berdasarkan wilayah. Saya berharap dapat melihat beberapa tren regional dalam data tanpa mencoba membuat model rata-rata (sebagian karena saya ingin melihat outlier, sebagian lagi karena banyak negara yang kehilangan data dan menurut saya model regional yang baik mungkin sulit bagi saya untuk membuat saat ini, paling-paling hanya menyesatkan).

Jadi pada akhirnya saya akan membuat, misalnya, garis-garis terpisah untuk Burkina Faso, Aljazair, dan Pantai Gading, tetapi semuanya akan berwarna oranye. Dan saya akan membuat jalur terpisah untuk Afganistan, Pakistan, dan Iran, tapi semuanya berwarna biru.

Sebaiknya dilakukan dengan ggplot2 karena itulah pustaka plot yang saya pelajari saat ini. Tapi mungkin ada cara standar untuk melakukan ini di R yang berfungsi di semua (sebagian besar) pustaka plot?

Sunting: Solusi akhir: Estetika kelompok. (Terima kasih @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)')

Yang membuat:

Plot


person Anthony    schedule 18.07.2014    source sumber
comment
coba estetika group   -  person baptiste    schedule 18.07.2014
comment
@baptiste Sangat sederhana! Tambahkan jawaban dan saya akan memberi Anda tanda centang. :)   -  person Anthony    schedule 18.07.2014


Jawaban (2)


Sedikit berbeda dari hasil yang Anda inginkan, tapi ini dia..

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

plot

person talat    schedule 18.07.2014

Solusi akhir: Estetika kelompok. (Terima kasih @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