如何使用lattice在一个面板中绘制多个小提琴图作为R中时间的函数?

如何使用lattice在一个面板中绘制多个小提琴图作为R中时间的函数?,r,plot,lattice,R,Plot,Lattice,下面是我的数据和我能够从中调整的绘图的一个最小示例: 我不是在寻找一个能帮我解决问题的人,而是告诉我哪里出了错 免责声明:这不是我的真实数据。这是一种更方便的方法,可以复制数据,而无需将其上传到其他地方。可复制的示例(例如,请给我们一个您第二段的示例)?您已经看到了吗?我将在今天晚些时候提供示例。我的时间有点短,现在仍然如此。无论如何,你提供的链接正是我已经知道的。问题是,我试图绘制测量值,测量值之间的时间间隔不同。因此,在t=0.72s时测量a,在t=3.5s时测量b,在t=10s时测量c。如

下面是我的数据和我能够从中调整的绘图的一个最小示例:

我不是在寻找一个能帮我解决问题的人,而是告诉我哪里出了错


免责声明:这不是我的真实数据。这是一种更方便的方法,可以复制数据,而无需将其上传到其他地方。

可复制的示例(例如,请给我们一个您第二段的示例)?您已经看到了吗?我将在今天晚些时候提供示例。我的时间有点短,现在仍然如此。无论如何,你提供的链接正是我已经知道的。问题是,我试图绘制测量值,测量值之间的时间间隔不同。因此,在
t=0.72s时测量a,在
t=3.5s时测量b,在
t=10s时测量c。如果我使用上面链接中的示例,这些都将以一致的间隔绘制。对我来说,这似乎是因为小提琴的情节被叠加在一个情节上。不过我不是专家。@BenBolker好吧,这花了我很长时间,但我已经编辑了这个问题,这样它现在就不那么含糊和重复了。如果还有其他问题,请告诉我。
require(lattice)

t <- c(0.88,3.52,7.04,10.56,18.48,29.92,29.6,52.8,70.4)

n <- 1000
mu.A <- c(0.4014165,0.2444396,0.2200015,0.1829841,0.2087899,0.1385284,0.2150571,0.2272082,0.1643309    )
mu.C <- c(0.4670488,0.3561108,0.1957407,0.1564677,0.1199911,0.1883665,0.1678103,0.1194251,0.1274065    )

C <- A <- numeric(0)

for (i in 1:length(mu.C)) {C <- c(C,rnorm(mu.C[i],sd=0.031))}
for (i in 1:length(mu.A)) {A <- c(A,rnorm(mu.C[i],sd=0.021))}

data.f <- data.frame(C,A,rep(t,each=n))

colnames(data.f) <- c("C","A","Time")

bwplot(C + A ~ factor(Time),
       data=data.f, 
       xlab="Time",
       ylab="P. Estimate",
       outer=T, # This parameter makes sure that the right hand side variable gets an own panel
       as.table=T,
       panel = function(...,box.ratio) {
         panel.violin(...,col="lightblue",
                      box.ratio=box.ratio)
         panel.bwplot(...,box.ratio=.1,pch="|")
       },
       par.settings = list(box.rectangle=list(col="black"),
                           plot.symbol=list(pch=".",cex=.001),
                           strip=strip.custom(factor.levels=c("C","A"))
       )
)
xyplot(C + A ~ Time,
       data=data.f, 
       xlab="Time",
       ylab="P. Estimate",
       panel = function(...) {
         panel.violin(...,col="lightblue")
       },
       par.settings = list(box.rectangle=list(col="black"),
                           plot.symbol=list(pch=".",cex=.001),
                           strip=strip.custom(factor.levels=c("C","A"))
       )
)