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

plot

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