我正在寻找带有旋转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)
有任何想法/提示吗?
答案 0 :(得分:2)
关注@ JohnColby上面的评论(并参见How can I plot with 2 different y-axes?,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)