xyplot图例配置

时间:2015-10-08 10:55:32

标签: r plot lattice legend-properties

这是我第一次来这里,所以我希望不要做错。

我有一个不同物种木材含水量的不同测量数据库以及各种指数。这些措施每两个小时进行一次,为期六个月。

我试图创建一个可以在不同位置使用的脚本。到目前为止,我设法让图表看起来不错,但是传说我被卡住了。 为了制作轴我必须将行日期和小时结合起来,因为我只想在每个星期五的00:00进行刻度。

当我尝试制作具有特定颜色和不同形状的自定义线条然后尝试制作图例时出现了我的问题。颜色与图形不匹配,因为我已经更改了颜色,但它们在图例中没有更改。我还更改了图例中显示的名称的顺序,但颜色仍然是默认颜色,并且不随名称更改。当我尝试用键手动操作时,线条颜色总是黑色,也没有点缀。

我已经纠正了画中的情节,是的非常可耻,但我需要提供它。但我需要做更多次,所以我想找到最终的解决方案。我发现帖子中有一个bug,并提出了一种手动方式,但我不确定我是否可以这样做...所以如果有人知道我怎么能以更简单的方式做到这一点。

到目前为止,我的尝试一直是:

a)默认颜色和组织

grafico_juan <- read.table("C:/Users/JFG/Desktop/graf_juan2.txt", header=TRUE, sep="\t", na.strings="NA",dec=",", strip.white=TRUE)
library(relimp, pos=14)
library(lattice, pos=15)
library(grid, pos=15)
str(grafico_juan)
grafico_juan[, "Date"] <- as.Date(as.character(grafico_juan[, "Date"]), format = "%d.%m.%y")
str(grafico_juan)
grafico_juan[, "D.T"] <- as.POSIXct(grafico_juan$D.T, format = "%d.%m.%y %H:%M:%S")
str(grafico_juan)

day=format(grafico_juan$D.T,"%a")
data.frame(grafico_juan,day)
#para seleccionar la parte que me hace falta para los puntos y las líneas
grafico_juan2<-subset(grafico_juan, subset = (Time == "00:00:00") & (day == "vie"), selct= Date:PRMMTC)
grafico_juan3<-subset(grafico_juan, subset = (Time =="00:00:00"),select = Date:PRMMTC)
data.frame(grafico_juan)
str(grafico_juan2)
str(grafico_juan3)
xyplot(CSC + EUC + PCC + PLC + PRC + PRMMTC + PSC ~ D.T, type="l", cex=1, xaxt="n", auto.key=list(space="top",border=TRUE, columns=7, lines= T, points = F), par.settings = list(superpose.line = list(lwd=2)), scales=list(x=list(at=grafico_juan2$D.T, labels=format(grafico_juan2$D.T,"%d/%m"),rot=0, cex = 1, relation='free'), y=list(at= seq(from=2,to=nrow(grafico_juan), by=1),tick.number=52, rot=0, cex = 1, relation='free')), abline = list(h = 3:60, v = grafico_juan2$D.T, col = "grey"), data=grafico_juan, xlab="DATE (dd/mm)", ylab="MC (%)")

b)改变顺序和颜色

xyplot(CSC + EUC + PCC + PLC + PRC + PRMMTC + PSC ~ D.T, 
  type="l",col=c("green", "turquoise" ,"blue" , "green4", "deeppink",
  "black","red"),lty=c(1,1,1,1,1,1,3), cex=3, xaxt="n", 
  auto.key=list(space="top",border=TRUE, columns=7, lines= T,
  points = F, text=c("PL", "PS", "PR", "PC", "PRMMT", "CS", "EU")), 
  par.settings = list(superpose.line = list(lwd=2)), 
  scales=list(x=list(at=grafico_juan2$D.T, 
  labels=format(grafico_juan2$D.T,"%d/%m"),rot=0, cex = 1, 
  relation='free'), y=list(at= seq(from=2,to=nrow(grafico_juan), 
  by=1),tick.number=52, rot=0, cex = 1, relation='free')),
  abline = list(h = 3:60, v = grafico_juan2$D.T, col = c("grey")), 
  data=grafico_juan, xlab="DATE (dd/mm)", ylab="MC (%)")

enter image description here

c)以as.layer的形式进行操作,并使用auto.key的密钥输入我仍然遇到同样的问题,因为它不会对线条进行着色,也不会使用点线。

a<-xyplot(CSC + EUC + PCC + PLC + PRC + PRMMTC + PSC ~ D.T, type="", cex=3, xaxt="n", key= list(text=list(levels=c("PL", "PS", "PR", "PC", "PRMMT", "CS", "EU")), lines= TRUE, border=TRUE, columns=7, fill=c("green4", "red", "deeppink","blue",  "black", "green", "turquoise")) , par.settings = list(superpose.line = list(lwd=2)), scales=list(x=list(at=grafico_juan2$D.T, labels=format(grafico_juan2$D.T,"%d/%m"),rot=0, cex = 1, relation='free'), y=list(at= seq(from=2,to=nrow(grafico_juan), by=1),tick.number=52, rot=0, cex = 1, relation='free')), abline = list(h = 3:60, v = grafico_juan2$D.T, col = c("grey")), data=grafico_juan, xlab="DATE (dd/mm)", ylab="MC (%)")

b<-xyplot(PLC ~ D.T, type="l",col= "green4" , cex=1, xaxt="n", auto.key=FALSE, par.settings = list(superpose.line = list(lwd=2)), data=grafico_juan, xlab="", ylab="")
c<-xyplot(PSC ~ D.T, type="l",col= "red" , cex=1, xaxt="n", auto.key=FALSE, par.settings = list(superpose.line = list(lwd=2)), data=grafico_juan, xlab="", ylab="")
d<-xyplot(PRC ~ D.T, type="l",col= "deeppink" , cex=1, xaxt="n", auto.key=FALSE, par.settings = list(superpose.line = list(lwd=2)), data=grafico_juan, xlab="", ylab="")
e<-xyplot(PCC ~ D.T, type="l",col= "blue" , cex=1, xaxt="n", auto.key=FALSE, par.settings = list(superpose.line = list(lwd=2)), data=grafico_juan, xlab="", ylab="")
f<-xyplot(PRMMTC ~ D.T, type="l",col= "black" , cex=1, xaxt="n", auto.key=FALSE, par.settings = list(superpose.line = list(lwd=2)), data=grafico_juan, xlab="", ylab="")
g<-xyplot(CSC ~ D.T, type="l" ,col= "green", cex=1, xaxt="n", auto.key=FALSE, par.settings = list(superpose.line = list(lwd=2)), data=grafico_juan, xlab="", ylab="")
h<-xyplot(EUC ~ D.T, type="l",col= "turquoise" , lty=3 ,cex=1, xaxt="n", auto.key=FALSE, par.settings = list(superpose.line = list(lwd=2)), data=grafico_juan, xlab="", ylab="")
library(latticeExtra)
a + as.layer(b) + as.layer(c) + as.layer(d) + as.layer(e) + as.layer(f)  + as.layer(g) + as.layer(h) 

enter image description here

理想的应该是最后一张图片,但是有正确的图例。

不确定您是否需要这些数据,但我提供了部分数据,因为我无法填充太多字符,D.T列为Date列,列为Time同一栏。

Date            Time           D.T         EUC     PLC  PCC PSC PRC CSC PRMMTC
12.03.15     14:00:00   12.03.15  14:00:00  11      9,3 6,8 9,1 9,6 3   6
12.03.15     16:00:00   12.03.15  16:00:00  11,2    9,3 6,6 9,2 9,2 8,9 6,6
12.03.15     18:00:00   12.03.15  18:00:00  11,7    9,7 6,6 9,6 9,6 9,2 7,4
12.03.15     20:00:00   12.03.15  20:00:00  11,6    9,6 6,5 9,6 9,5 9,1 7,6
12.03.15     22:00:00   12.03.15  22:00:00  11,6    9,6 6,5 9,6 9,6 9,1 7,6
13.03.15     00:00:00   13.03.15  00:00:00  11,7    9,7 6,6 9,6 9,6 9,2 7,7
13.03.15     02:00:00   13.03.15  02:00:00  11,8    9,8 6,6 9,6 9,6 9,2 7,7
13.03.15     04:00:00   13.03.15  04:00:00  11,7    9,8 6,6 9,6 9,8 9,2 7,7
13.03.15     06:00:00   13.03.15  06:00:00  11,7    9,7 6,6 9,7 9,7 9,2 7,7
13.03.15     08:00:00   13.03.15  08:00:00  11,9    9,8 6,7 9,8 10  9,3 7,9
13.03.15     10:00:00   13.03.15  10:00:00  11,7    9,8 6,6 9,8 9,8 9,2 7,7
13.03.15     12:00:00   13.03.15  12:00:00  11,7    9,9 6,9 9,9 10  9,3 7,7
13.03.15     14:00:00   13.03.15  14:00:00  11,9    10  6,9 9,9 10,1 9,4 7,7
13.03.15     16:00:00   13.03.15  16:00:00  11,8    10  6,9 10  10,2 9,3 8

0 个答案:

没有答案