[英]How to add horizontal line to xy plot in lattice
I'm using lattice to generate a plot that looks like the image below 我正在使用晶格生成一个看起来像下图的图
The code I'm using to generate the plot is: 我用来生成图的代码是:
xyplot(RMSE ~ Dimensions, data=afterdim,groups = paste("", Dim_Reduction),
type = "l", auto.key =list(spline = "bottom", points = FALSE, lines = TRUE),
xlab="Dimensions", ylab="RMSE",scales=list(ylim=c(0,1)))
I would like to draw a horizontal line on this graph at y-axis 0.23
with a different color. 我想在此图表上以
y-axis 0.23
绘制一条水平线,颜色不同。 Purpose of adding the horizontal line is to show a baseline. 添加水平线的目的是显示基线。 Is this possible to do?
这可能吗?
Sample data I'm using to plot is: 我用来绘制的样本数据是:
Dim_Reduction, Dimensions, Time, RMSE
PCA, 9, 15.39, 0.287
PCA, 8, 16.84, 0.290
PCA, 7, 14.13, 0.289
PCA, 6, 12.14, 0.292
PCA, 5, 12.54, 0.293
PCA, 4, 11.23, 0.295
ICA, 11, 20.23, 0.287
ICA, 10, 20.88, 0.288
ICA, 9, 16.34, 0.290
ICA, 8, 16.99, 0.294
ICA, 7, 14.34, 0.291
ICA, 6, 13.33, 0.292
ICA, 5, 12.12, 0.294
You can try the following code 您可以尝试以下代码
# data
afterdim <- read.table(header = TRUE, text = "
Dim_Reduction Dimensions Time RMSE
PCA, 9, 15.39, 0.287
PCA, 8, 16.84, 0.290
PCA, 7, 14.13, 0.289
PCA, 6, 12.14, 0.292
PCA, 5, 12.54, 0.293
PCA, 4, 11.23, 0.295
ICA, 11, 20.23, 0.287
ICA, 10, 20.88, 0.288
ICA, 9, 16.34, 0.290
ICA, 8, 16.99, 0.294
ICA, 7, 14.34, 0.291
ICA, 6, 13.33, 0.292
ICA, 5, 12.12, 0.294")
xyplot(RMSE ~ Dimensions, data=afterdim,groups = Dim_Reduction,
type = c("l", "g"), auto.key =list(spline = "bottom", points = FALSE, lines = TRUE),
xlab="Dimensions", ylab="RMSE",scales=list(ylim=c(0,1)),
panel=function(...) {
panel.xyplot(...)
panel.abline(h=.29)
})
Need to read both ?xyplot section on 'scales' and ?llines: 需要阅读'scale'和?llines上的两个?xyplot部分:
mylattice <- xyplot(RMSE ~ Dimensions, data=afterdim, groups = Dim_Reduction,
panel =function(x,y,groups,...){
panel.xyplot(x,y,groups,...);
panel.lines(x=3:12, y=rep(0.23,10), col="red") },
scales=list( y=list( limits= c(0.22,0.3))),
type = "l", xlab="Dimensions", ylab="RMSE")
png(); print(mylattice); dev.off()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.