2011-10-15 13 views
5

Grafik türünün görünüm sayısına göre yıllık bir frekans grafiği oluşturmaya çalışıyorum. Bir süredir ggplot2 ile oynamıştım, ama sanırım bu başımın üzerinden geçiyor (Ben sadece R ile başladım)Aynı grafikte birden fazla frekans çizgisi, y bir karakter değeridir

Sonuçların nasıl görüneceğine dair bir şema ekledim. İçinde bulunduğum diğer sorunlardan biri de, grafik türlerinin görünmediği uzun yıllar olduğudur. O yıl görünmezse, grafik türünü hariç tutmanın bir yolu var mı?

örn. 1940 yılında

year <- c("1940","1940","1940","1940","1940","1940","1940","1940","1940","1940","1940","1941","1941","1941","1941","1941","1941","1941","1941","1941","1941","1941","1941","1941","1941") 
type <- c("Line","Column", "Stacked Column", "Scatter with line", "Scatter with line", "Scatter with line", "Scatter with line", "Map with distribution","Line","Line","Line","Bar","Bar","Stacked bar","Column","Column","Sociogram","Sociogram","Column","Column","Column","Line","Line","Line","Line") 
ytmatrix <- cbind(as.Date(as.character(year), "%Y", type)) 

şey mantıklı değil eğer bana bildirin ... hayır "toplumsal ilişki çizelgesi" Ben 0 olarak çizgilerin bir grup var istemiyorum yoktur. StackOverflow hızla benim favori sitelerden biri haline geliyor!

teşekkürler, Jon


Here's a working idea of what I have so far. İşte ben bugüne kadar ne var ... tüm yardımların için tekrar teşekkür ederiz!

Ve ben de bunu yaptım (veri dosyasını henüz paylaşamıyorum, çünkü bir yayın için kullanmayı umduğumuz bir şey, ama ggplot alanı muhtemelen daha ilginç olsa da

AJS = read.csv(data) #read in file 
Type = AJS[,17] #select and name "Type" column from csv 
Year = AJS[,13] #select and name "Year" column from csv 
Year = substr(Year,9,12) #get rid of junk from year column 
Year = as.Date(Year, "%Y") #convert the year character to a date 
Year = format(Year, "%Y") #get rid of the dummy month and day 
Type = as.data.frame(Type) #create data frame 
yt <- cbind(Year,Type) #bind the year and type together 
library(ggplot2) 

trial <- ggplot(yt, aes(Year,..count.., group= Type)) + #plot the data followed by aes(x- axis, y-axis, group the lines) 
geom_density(alpha = 0.25, aes(fill=Type)) + 
opts(axis.text.x = theme_text(angle = 90, hjust = 0)) + #adjust the x axis ticks to horizontal 
opts(title = expression("Trends in the Use of Visualizations in The American Journal of Sociology")) + #Add title 
scale_y_continuous('Appearances (10 or more)') #change Y-axis label 
trial 
+0

Bu anlamda bir tarihi değişkeni sopa çalışıyor yapmaz:

m <- ggplot(dfrm, aes(x=date), group=group) m+ geom_histogram(aes(y=..density..)) + geom_density(fill=NA, colour="black") 
Ancak Hte arşivlerinin bir aramada bulunan bir örnek nasıl çalışır @Hadley Wickham tarafından bir ilanı bulundu Eksik sağ paren değiştirdikten sonra bile bir matris içine. –

+0

Bunun çalışma nedeni olmadığından emin değilim ... – crock1255

+0

Şu anda ikisi de "karakter" tir. Karakter değerleri üzerindeki yoğunlukları (hedefiniz gibi görünüyor) hesaplama girişiminde bulunmak zor olabilir. –

cevap

1

Bu deneme yapmak daha ilginç bir dataframe olabilir: gerçekten görevde tartışılmadı yeni bir şey /) do I (yardım bir örnekle çalışan düşünce

df1 <- data.frame(date = as.Date(10*365*rbeta(100, .5, .1)),group="a") 
df2 <- data.frame(date = as.Date(10*365*rbeta(50, .1, .5)),group="b") 
df3 <- data.frame(date = as.Date(10*365*rbeta(25, 3,3)),group="c") 
dfrm <- rbind(df1,df2,df3) 

stat_density) sayfası çalışır, ancak şu şekilde olmaz:

m+ geom_density(aes(fill=group), colour="black") 

enter image description here

+0

Teşekkür ederim. Bu gerçekten yardımcı oldu. Özellikle tarih formatını almak. Tekrar teşekkürler! – crock1255

+0

Saydamlığı keşfettiğinizi görüyorum ve alfa argümanı ile grafiği daha da iyi hale getirdiniz. İyi iş. –

İlgili konular