2012-03-19 11 views
4

ループ(郡名)で次のggplot2 v0.9 scale_x_continiousロジックを使用して、各郡のデータを同じxスケールの別々のプロットにプロットしようとしています。ggplot2 scale_x_continuous limitsまたはabsolute

MaxDays=365*3; 
p <- p + scale_x_continuous(limits=c(0,MaxDays)) 
p <- p + scale_x_continuous(breaks=seq(0,MaxDays,60)) 

すべての郡にデータ> = MaxDateがある場合、ロジックは優れています。ただし、日数がMaxDate未満の場合、グラフxの縮尺が一様ではない(つまり、0〜720日)

どのようにしてscalseを制限ではなく絶対に設定できますか?

どのような援助を大幅

############################################ 
### Sample Data Below 
############################################ 

# County 1 data 
Days=seq(1,30,1) 
Qty=Days*10 
County=rep("Washington",length(Days)) 
df1=data.frame(County, Qty, Days) 

# County 2 data 
Days=seq(1,15,1) 
Qty=Days*20 
County=rep("Jefferson",length(Days)) 
df2=data.frame(County, Qty, Days) 

# County 1 and 2 data 
df3=rbind(df1,df2) 

# calculate ranges for x scales 
yrng=range(df3$Qty) 
xrng=range(df3$Days) 

# Scatter Plots 
fname=paste("C:/test",".pdf",sep=""); 
pdf(fname,10,8,onefile=TRUE,paper="a4r"); 

p <- ggplot() 
cnty=unique(df3$County) 
n=length(unique(df3$County)) 
for (i in 1:n){ 
    df4<-subset(df3, County==cnty[i]) 
    p <- ggplot(df4, aes(x=Days, y=Qty)) 
    p <- p + geom_point() 
    p <- p + opts(title=cnty[i]) 
    p <- p + scale_x_continuous(limits=c(xrng[1],xrng[2])) 
    p <- p + scale_x_continuous(breaks=seq(xrng[1],xrng[2],1)) 
    p <- p + coord_cartesian(xlim=c(xrng[1],xrng[2])) 
print(p); 
} 
dev.off() 

答えて

9
p <- p + coord_cartesian(xlim=c(0, MaxDays)) 

EDIT理解さwoudl:コメントに基づいています。

問題は、2番目のscale_x_continuous()が最初のものに置き換えられているため、制限が維持されないということです。

あなたはこのような何か与える

p <- p + scale_x_continuous(limits=c(xrng[1],xrng[2]), 
          breaks=seq(xrng[1],xrng[2],1)) 

でライン

p <- p + scale_x_continuous(limits=c(xrng[1],xrng[2])) 
p <- p + scale_x_continuous(breaks=seq(xrng[1],xrng[2],1)) 

を置き換えることができます。

enter image description here

+0

おかげけど...私はパッケージを追加する必要があります?エラー:関数 "corrd_cartesian"を見つけることができませんでした – MikeTP

+0

いいえ、私は@ジョランは親切に対応していました。 –

+0

ありがとうございます。今私はエラーを返すことはありませんが、私は達成しようとしていたものではありません。ループ内の特定のプロットのデータが最大x軸に対してこのような高レベルを正当化する場合でも、私のx軸とy軸(およびティック)がすべて同じであることを探します。基本的には、各郡のフルサイズのプロットが必要な場合を除いて、facet_gridのデフォルト縮尺の均等物を使用します。 – MikeTP