两部分问题:在ggplot中,我试图增加轴间距之间的间距,这样当我在平均值和置信区间旁边偏移“原始数据”点时,数据点属于左边的矩形(例如,如果1988年和1989年之间的差距在纸上是1英寸,我怎么能做到2英寸)?
其次,我想知道是否有一种方法可以在轴上创建断点,这样我就可以在缺少数据的年份中消除空白区域。代码如下,但我希望看起来像这个例子
http://gnuplot-surprising.blogspot.com/2011/10/broken-axes-graph-in-gnuplot-3.html
set.seed(1)
mean<-rnorm(100,0,2)
years<-c(1988,1989,1990,2001,2002,2003,2012,2013,2014)
winter<-sample(years, 100,replace=T)
data<-as.data.frame(cbind(mean, winter))
library("Rmisc")
sum<-summarySE(data,measurevar="mean",groupvars=c("winter"))
library(ggplot2)
p<-ggplot(sum, aes(x=winter, y=mean, group=winter))+
geom_rect(aes(ymin=mean-ci, ymax=mean+ci, xmin=winter-.2, xmax=winter+.2), fill="gray")+
geom_point(shape=18, size=3)+
scale_x_continuous(breaks=seq(1985,2014,5))+
scale_y_continuous(breaks=seq(-2,4,1))+
geom_abline(intercept=0,slope=0, lty=2)+
theme_bw()
p2<-p + geom_point(data=data, aes(x=winter+.3,y=mean),shape=1, size=2.5)+
scale_shape()
p2
答案 0 :(得分:0)
正如@joran所述,ggplot中的轴断裂是不行的。 Facets通常提供最佳解决方案。也许这会对你有所帮助:
p<-ggplot(sum, aes(x=winter, y=mean, group=winter))+
geom_rect(aes(ymin=mean-ci, ymax=mean+ci, xmin=winter-.2, xmax=winter+.2), fill="gray")+
geom_point(shape=18, size=3)+
scale_x_continuous(breaks=seq(1985,2014,1))+
scale_y_continuous(breaks=seq(-2,4,1))+
geom_abline(intercept=0,slope=0, lty=2)+
theme_bw()
p2<-p + geom_point(data=data, aes(x=winter+.3,y=mean),shape=1, size=2.5)+
scale_shape()
p2 + facet_wrap(~winter,nrow=1,scales="free_x")
BTW:您是否考虑过使用boxplot进行此类数据可视化?