2012-04-12 7 views
1

データファイル:このクリップのようにそれのいくつかの上記データをプロットhttp://ubuntuone.com/3x5z4kFEUcVUB8KXYjICpDggplot2クリップデータ

:この一方

tc = read.table('tertiary-tc.csv', header=T, sep=',') 
library(ggplot2) 
old <- theme_set(theme_bw()) 
pg <- ggplot(tertiary, aes(Conductivity)) + stat_density(geom = 'path' 
    , position = 'identity') + facet_wrap(~Lithology) 
print(pg) 

はない:

library(lattice) 
densityplot(~Conductivity | Lithology 
    , data = tc 
    , groups=Lithology 
    , plot.points=T 
    , ref = T 
    , main="Density plot" 
    , auto.key=F 
    , scales=list(tck=-1)) # set to a negative to plot inside ticks? Works! 
dev.off() 

プロットされていない点(すぐにしか見えない点)は、Lithology列の下に「ドロマイト」として分類された2点です。 ggplot2はオフスケールであるためプロットしていませんか?または、2つのポイントしかないので?このような

+1

2点のみに精通わからないではない始めたかもしれません( 'stat_density'は、if('ありn <3)return(data.frame()) ')。おそらく、 'plyr :: ddply'と事前に密度を手動で計算しようとします。 – baptiste

+0

@hadleyなぜstat_densityは2点データを拒否しますか? – kohske

+0

感謝@baptiste、私はplyrが使用するのを学ぶために長い時間がかかりません願っています。 –

答えて

2

何か問題があるあなたは、それが何らかの形でトリミング見える理由

density2 <- function(x, select, ...){ 
    n <- nrow(x) 
    range <- range(x[[select]]) 
    xgrid <- seq(range[1], range[2], length=200) 

    weight <- rep(1, n)/n 
    d <- density(x[[select]], ..., 
        weight=weight, from=range[1], to=range[2]) 

    as.data.frame(d[c("x","y")]) 

} 


summaries <- ddply(tc, "Lithology", density2, select="Conductivity") 

ggplot(summaries, aes(x, y)) + facet_wrap(~Lithology) + 
    geom_path() 

が、私はdensity()

+0

あなたの非常にまともな!あまり自分にはそれほど精通していません。あなたは私をしっかりと把握しているように見えます。 –