使用xyplot将我的传奇调整到我的观点?

时间:2013-11-11 19:22:53

标签: r legend lattice

我已经意识到有格子的情节,我需要分割我的数据以获得湖泊不同站点的表示,每个团队制作的每个复制品的线和点都在这个湖中工作。 我设法做到这一点,但传说是由所有参与此练习的团队组成的,并且出现在我的数据库中,而不仅仅是出现在我的情节中。

# Expression des données physico



###############################################
#Expression des données pour Cromwell

#Préparation du panel
panel.my <- function(...) {
  panel.superpose(...)
}

trellis.par.set(superpose.symbol=list(pch=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)),
                superpose.line=list(lty=c(1, 2, 3, 4, 5, 6, 7)))


#Graphique Temp avec lines
xyplot(prof~temp | lake * station,
       type=c("p", "l"),
       physico,
       subset=lake=="Crom",
       group=team,
       panel = panel.my, 
       xlim=c(6,15),
       ylim=c(10,-1),
       scales=list(x= list(at=seq(5, 15, 1)), y = list(at=seq(0, 10, 1))),
       auto.key =list(
         draw.key=list(text=list("Equipe 1", "Equipe 1'")),
         points = TRUE, 
         columns=2),
       xlab="Température",
       ylab="Profondeur",
)

结果:http://environnementaliste.files.wordpress.com/2013/11/cromwell_temp.jpeg

有人有任何想法将我的传说限制在相关信息中吗?

谢谢!

卢卡斯

1 个答案:

答案 0 :(得分:0)

要限制图例,请将传递的数据限制为xyplot。在您的代码中,您依赖subset参数并传递整个数据集physico,包括您不想在图例中绘制和不想要的额外因子。而不是

...,
data = physico,
subset=lake=="Crom",
...

将传递给xyplot的数据进行子集化并删除未使用的级别

...,
data = droplevels(subset(physico, subset = lake == "Crom")),
...

使用可重现的代码和CO2包中的datasets数据集:

levels(CO2$Plant)
#  [1] "Qn1" "Qn2" "Qn3" "Qc1" "Qc3" "Qc2" "Mn3" "Mn2" "Mn1" "Mc2" "Mc3" "Mc1"

library(lattice)

xyplot(conc~uptake | Type * Treatment,
       type=c("p", "l"),
       data = droplevels(subset(CO2, subset=Type=="Quebec")),
       group=Plant,
       auto.key =list(
         draw.key=list(text=list("Equipe 1", "Equipe 1'")),
         points = TRUE, 
         columns=2),
       xlab="Température",
       ylab="Profondeur",
)

plot with extra levels removed