2

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

我有一个数据库,其中包含不同品种木材水分含量的不同测量值以及各种指标。这些措施在六个月内每两小时采取一次。

我正在尝试制作一个可以在不同位置使用的脚本。到目前为止,我设法使图表看起来不错,但我被困住了。为了制作轴,我必须结合行日期和小时,因为我只想要每周五 00:00 的刻度。

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

我已经在油漆中纠正了情节,是的,这真的很可耻,但我需要交付它。但我需要做更多次,所以我试图找到最终的解决方案。我发现帖子中有一个错误,并提出了一种手动方式,但我不确定我是否可以这样做......所以如果有人知道我该如何以更简单的方式做到这一点。

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

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 (%)")

在此处输入图像描述

c)将其作为 as.layer 并使用 auto.key 的 key insted 我仍然有同样的问题,因为它不会给线条上色,也不会点一个点。

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) 

在此处输入图像描述

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

不确定您是否需要数据,但我提供了其中的一部分,因为我不能放太多字符,D.TDate和列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
4

0 回答 0