使用 xyplot 和 doubleYscale 更改轴标签颜色和图例线颜色

问题描述

我正在尝试使用latticeExtra 的xyplot 和doubleYscale 函数创建一个带有双y 轴的图。如何将左右 y 轴的轴标签颜色以及图例线条颜色更改为与绘图中的线条颜色相同?这些现在以蓝色和粉红色绘制,但应该与下图中的线条相同。请参阅下面的可重现代码示例和绘图:

library(lattice)
library(latticeExtra)

# Create the data frame.
My_DataFrame <- data.frame(
  emp_id = c (1:5),salary = c(623.3,515.2,611.0,729.0,843.25),weight = c(80,90,92,93,91),start_date = as.Date(c("2012-01-01","2013-09-23","2014-05-11","2014-11-15","2015-03-27")),stringsAsFactors = FALSE
)
# Print the data frame.         
print(My_DataFrame) 

obj1 <- xyplot(salary ~ start_date,My_DataFrame,type = "l",lwd = 2,col = "#6F99ADFF",col.lab = "black",ylim = seq(0,1000,100),scales = list(x=list(cex=1.2),y=list(cex=1.2)),xlab = list("",fontsize = 22),ylab = list("Hello",fontsize = 18),ylab.right = list("There",fontsize = 18))

obj2 <- xyplot(weight ~ start_date,col = "#E18727FF")

doubleYScale(obj1,obj2,col = c("#6F99ADFF","#E18727FF"),text = c("salary","weight"),add.ylab2 = FALSE)

enter image description here

解决方法

添加 par.settings = list(superpose.line = list(col=c("#6F99ADFF","#E18727FF"))), 在您的代码中:

obj1 <- xyplot(salary ~ start_date,My_DataFrame,type = "l",lwd = 2,col = "#6F99ADFF",col.lab = "black",par.settings = list(superpose.line = list(col=c("#6F99ADFF",ylim = seq(0,1000,100),scales = list(x=list(cex=1.2),y=list(cex=1.2)),xlab = list("",fontsize = 22),ylab = list("Hello",fontsize = 18,col="#6F99ADFF"),ylab.right = list("There",col="#E18727FF"))

obj2 <- xyplot(weight ~ start_date,col = "#E18727FF")

doubleYScale(obj1,obj2,col = c("#6F99ADFF","#E18727FF"),text = c("salary","weight"),add.ylab2 = F)

enter image description here