我正在尝试组合或者说用一个xyplot(带有回归线)覆盖条形图,其中两个变量的值非常不同。
以下是我的数据:https://www.dropbox.com/s/aacbkmo577uagjs/example.csv
根据下面的代码,有两个数字变量“rb”和“rae”以及几个因子变量(sample.size,effect.size,allocation.design,true.dose)。变量“rae”应显示在条形图中(理想情况下,背景中为微弱颜色),而变量“rb”将显示在带有回归线的xyplot中。有两个主要问题:
(1)如何组合/覆盖两种类型的图形? (2)如何自定义轴标签(y刻度的不同刻度)
对于(1),我知道如何将不同类型的图形与ggplot2组合在一起,但是对于格子也应该是可能的,对吗?我试过“doubleYScale”,这似乎不起作用。
对于(2),我只完成了对“scale”选项中的y-scale使用“relation ='free'”(参见代码)。这很好,因为重点是值的重要范围。但是,如果在左侧和右侧外部绘制轴标签更为合适(分别为“rae”和“rb”)。
这是迄今为止的代码(由Dieter Menne修改为自包含)
library(lattice)
library(latticeExtra)
df.dose <- read.table("example.csv", header=TRUE, sep=",")
df.dose <- transform(df.dose,
sample.size=as.factor(sample.size),
true.dose = as.factor(true.dose))
rae.plot <- xyplot(
rae ~ sample.size | allocation.design*true.dose,
df.dose, as.table=TRUE,
groups = type,
lty = 1, jitter.x=TRUE,
main="RAE",
scales=list(y=list(draw=F, relation="free", tck=.5)),
panel = function(x,y) {
panel.xyplot(x,y,jitter.x=TRUE)
panel.lmline(x,y, col="darkgrey", lwd=1.5)
})
useOuterStrips(rae.plot)
rb.plot <- barchart(
rb ~ sample.size | allocation.design*as.factor(true.dose),
df.dose, as.table=TRUE,
groups = type,
key=list(
text=list(levels(as.factor(df.dose$type))),
scales=list(y=list(draw=F, relation="free", tck=.5)),
main="RB"))
useOuterStrips(rb.plot)
答案 0 :(得分:1)
print(useOuterStrips(rae.plot), split=c(1,1,1,2),more=TRUE)
print(useOuterStrips(rb.plot), split=c(1,2,1,2), more=FALSE)
将在一页上打印;它比ggplot2更容易。
scales=list(
y=list(alternating=1,tck=c(1,0)),
x=list(alternating=1,tck=c(1,0)))
xyplot (... scales=scales)