2011-09-27 16 views
10

Genellikle tek bir x değişkenine, bir veya daha fazla faset değişkenine ve birden çok farklı değişkene sahip bir veri çerçevem ​​var. Bazen farklı y değişkenlerini aynı anda ayrı çizgiler olarak çizmek isterim. Ama her zaman sadece istediğim bir alt kümesidir. Bir sütun olarak "değişken" almak için eriyik kullanmayı denedim ve bunu kullanıyorum ve özgün veri kümesindeki her bir sütunu istiyorsam çalışır. Genellikle yapmıyorum.Birden çok y değerini ggplot2 ile ayrı çizgiler olarak çizmenin doğru yolu

Şuanda bir şeyleri gerçekten hissediyordum. Ben mpg karşı disp, hp ve wt çizdirmek istediğiniz mtcars ile varsayalım:

ggplot(mtcars, aes(x=mpg)) + 
    geom_line(aes(y=disp, color="disp")) + 
    geom_line(aes(y=hp, color="hp")) + 
    geom_line(aes(y=wt, color="wt")) 

Bu gerçekten gereksiz hissediyor. Eğer ilk önce mtcarları eritirsem, tüm değişkenler eriyecek ve sonra istemediğim diğer değişkenleri çizeceğim.

Bunu yapmanın iyi bir yolu var mı?

cevap

8

ggplot hep uzun biçimi dataframe tercih ediyor, böylece melt it:

mtcars.long <- melt(mtcars, id = "mpg", measure = c("disp", "hp", "wt")) 
ggplot(mtcars.long, aes(mpg, value, colour = variable)) + geom_line() 
+0

Yani tedbir bölüm I önemsemiyorum şeydir. Etkileyici bir şekilde keşfederken, bu doğru yol, sadece biraz can sıkıcı olduğunu varsayalım. –

+2

@Chris - alternatif olarak, önerdiğiniz gibi tüm data.frame'i eritin ve sonra farklı şeyler çizmek ve yeniden yapmak istemiyorsanız "ggplot()" çağrısındaki veri argümanı olarak 'subset()' işlevini kullanın. melt' – Chase

İlgili konular