1

X軸を回転させた散布図を探しています。基本的に、2つのY軸間の相関関係をプロットしたいと思います。理想的には、x軸が時間を表し、Y軸が相関を表すようにします。

data <- data.frame( words = c( "Aliens", "Aliens", "Constitution", "Constitution",    "Entitled", "Entitled" ),
              dates =  as.Date( c ("2010-01-05", "2010-02-13", "2010-04-20", "2010-06-11","2010-03-18", "2010-09-13" )), 
                    Rep =    c( .18, .14, .16, .45, .33, .71 ), Dem = c( .16, .38, .24, .11, .59, .34 ))

そして、これは私がこれまでにできたことです。私はそれが本当に意味を成し遂げるとは思わない。相関関係でサイズを決め、月で色を付けることができますか?

plot(x=data$dates, y=data$Rep, ylim=c(0,1.1*max(data$Rep)),
 col='blue', pch = 15,
 main='Rep Correlations stock close', xlab='date', ylab='Republican')
axis(2, pretty(c(0, 1.1*max(data$Rep))), col='blue')
par(new=T)
plot(x=data$date, y=data$Dem, ylim=c(0,1.1*max(data$Dem)),
 col='green', pch = 20,
 xaxt='n', axes = F, xlab = '', ylab='')
axis(4, pretty(c(0, 1.1*max(data$Dem))), col='green')
mtext("Democrat",side=4)

何か考え/ヒントはありますか?

4

1 に答える 1

2

上記の@JohnColbyのコメントをフォローアップします(2つの異なるy軸でプロットするにはどうすればよいですか?http: //rwiki.sciviews.org/doku.php?id = Tips:graphics-base:2yaxesを参照してください。あなたがそれを助けることができるならば、二重のy軸プロットを作成しないでください)、どうですか:

dat <- data ## best not to use reserved words -- it can cause confusion
library(ggplot2)
theme_update(theme_bw())  ## I prefer this theme
## code months as a factor
dat$month <- factor(months(dat$dates),levels=month.name)
dat <- dat[order(dat$dates),]
qplot(Rep,Dem,colour=month,data=dat)+
    geom_path(aes(group=1),colour="gray")+geom_point(alpha=0.4)+
    geom_text(aes(label=words),size=4)

(ポイント間に線を追加してから、線によって隠されないようにポイントを再プロットします。単語を追加するのはかわいいですが、完全なデータセットには乱雑すぎる可能性があります)

ここに画像の説明を入力してください

または、日付を連続変数としてエンコードします

ggplot(dat,aes(Rep,Dem,colour=dates))+
    geom_path(aes(group=1),colour="gray")+geom_point(alpha=0.4)+
    geom_text(aes(label=words),size=4)+
    expand_limits(x=c(0,0.9))
ggsave("plotcorr2.png",width=6,height=3)

ここに画像の説明を入力してください

この特定のコンテキスト(両方の変数が同じスケールで測定される場合)では、両方を日付軸に対してプロットしても問題はありません。

library(reshape2)
library(plyr)
m1 <- rename(melt(dat,id.vars=c("words","dates","month")),
             c(variable="party"))

ggplot(m1,aes(dates,value,colour=party))+geom_line()+
    geom_text(aes(label=words),size=3)+
    expand_limits(x=as.Date(c("2009-12-15","2010-10-01")))
ggsave("plotcorr3.png",width=6,height=3)

ここに画像の説明を入力してください

于 2012-04-15T15:38:27.797 に答える