将颜色作为变量传递给aes_string

 lovely夏的宠儿 发布于 2023-02-09 15:35

我想在一列上绘制数据矩阵的几列,因此我不是单独绘制每一列,而是使用循环.问题是如果要使用循环,要绘制的列名称和颜色必须是可变的.我尝试了以下方法:

allDs <- sort(unique(plotdata$D))
p <- ggplot(plotdata, aes(SpaceWidth))
for (thisD in allDs) {
    tlColName <- paste("M2D", thisD, "Tl", sep="")
    colorName <- paste("D", thisD, sep="")
    p <- p + geom_line(data = plotdata[!is.na(plotdata[[tlColName]]),], aes_string(y = tlColName, color = colorName))
}
p <- p + scale_colour_manual("Legend", values = c("D2" = "blue", "D3" = "red", "D4" = "green", "D6" = "violet", "D7" = "yellow" ))
p <- p + scale_x_log10(breaks = composite$SpaceWidth)
p <- p + facet_wrap(~ Drawn, ncol = 3)
p <- p + labs(title = "Fu plot", y = "MTN")
p

但是当我运行这个时,我收到以下错误:

Error in eval(expr, envir, enclos) : object 'D2' not found

如何将颜色(或任何其他值)作为变量传递给aes_string?提前致谢.

测试数据可在此处获得.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有