覆盖R lattice parallelplot auto.key图例颜色

sof*_*ave 5 r lattice

我使用晶格包parallelplot方法绘制数据并遇到生成图例的麻烦.我为绘图创建了一个自定义颜色矢量,但找不到传递它们的方法来覆盖图例中显示的默认颜色.虽然我已经没时间了,最​​终在Photoshop中修正了图例颜色,但我想学习在格子中执行此操作的正确方法.

以下是使用4列图例生成绘图的代码:

parallelplot(acc, horizontal.axis=FALSE, col=acc_colors, lwd=1.5, cex=2.5, 
    ylab="Accuracy (Min = 50%, Max = 100%)", 
    xlab="Activity (overall = average across activities)", 
    main="Human Activity Recognition Accuracy", 
    scales=list(cex=1), 
    auto.key=list(text=c("Test Set", "Test Subject", "Training Set", "Training Subject"), 
    title=" ", 
    space="top", columns=4, points=FALSE) 
)
Run Code Online (Sandbox Code Playgroud)

有关如何传递自定义图例颜色的任何想法?

sof*_*ave 7

使用show.settings()和str(trellis.par.get())显示需要自定义的图形参数是superpose.line.使用par.settings传递自定义设置时,仍然使用auto.key,同时提供自定义键颜色和线宽:

acc_par <- list(superpose.line = list(col = key_colors), lwd=1.5, lty=1.5)
parallelplot(acc, horizontal.axis=FALSE, col=acc_colors, lwd=1.5, cex=2.5, 
           ylab="Accuracy (Min = 50%, Max = 100%)",
           xlab="Activity (overall = average across activities)", 
           main="Human Activity Recognition Accuracy",
           scales=list(cex=1),
           par.settings=acc_par,
           auto.key=list(text=c("Test Set", "Test Subject", "Training Set", "Training Subject"),
                         title=" ", space="top", columns=4, lines=TRUE)
           )
}
Run Code Online (Sandbox Code Playgroud)

文章 是有帮助寻找这种解决方案.