2013-05-03 17 views
27

varsayalım bir dataframe sahip faktörler:kullanarak `geom_line() 'X eksenine olmak

I birleştirmek için bir hattı kullanılarak çalışma günü karşı toplam sayısı çizmek isteyen
hist <- data.frame(date=Sys.Date() + 0:13, 
        counts=1:14) 

. Aşağıda her değeri sayı koyar:

hist <- transform(hist, weekday=factor(weekdays(date), 
             levels=c('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'))) 
ggplot(hist, aes(x=weekday, y=counts)) + geom_point(stat='summary', fun.y=sum) 

bir hat (geom_line()), ggplot hakkında tek grup başına bir veri gözlem sahip şikayet ve dolayısıyla bir çizgi çizmek mümkün değildir ile bağlanmaya noktalar arasında.

Bunu anlıyorum - her hafta içi (faktör düzeyi) için bir çizgi çizmeye çalışıyor.

Sadece ggplot'u (sadece satırın amaçları için), haftanın günlerinin sayısal olduğunu iddia etmek için nasıl alabilirim? Belki de pazartesi için 0, salı günü için 1 olan day_of_week başka bir sütuna sahip olmalıyım.

cevap

33

ben hile yapmak gerekir düzgün sorunu group=1 belirterek ve bir stat_summary() katmanı ekleyerek anlıyorsanız:

ggplot(hist, aes(x=weekday, y=counts, group=1)) + 
geom_point(stat='summary', fun.y=sum) + 
stat_summary(fun.y=sum, geom="line") 

enter image description here

+3

Harika! Grup = 1'in amacı nedir (neden 1? Ne yapar?) –

+3

Oh, sanırım onu ​​buldum. [burada (ggplot2 belgeleri)] (http://docs.ggplot2.org/current/aes_group_order.html) –

+5

Aynı anda birden çok satırı çizmek istediğinizde, 'group = variableWhichDefinesLines' belirtmelisiniz –

İlgili konular