如何解决我想在for循环中使用ggplot2进行多个绘图,但无法识别aes中的Y变量
我有一个称为TumorData的数据框,其中的列是不同基因的基因表达数据,行是不同的患者。 我想要一个列(名称为TP53)对第3至12列中每个基因的散点图。 我做了以下
for(i in 3:12) {
GeneName <- colnames(TumorData[,i])
FileName <- paste0(GeneName,".png")
ggplot(TumorData,aes(x = TP53,y = GeneName)) +
geom_point()
ggsave(FileName)
}
但是当我转到保存的文件时,就好像它是一维图:仅相应绘制了第一个参数(TP53)。一切都在同一水平线上,Y轴甚至没有数字刻度。循环确实读取了“ GeneName”,因为实际的基因名称出现在每个图形的Y轴中,但是就像它并不能“理解”它是数据框中的列名称,并且应该检索数字值从那里。 我附加了一张图表的外观图像,因为我不确定自己的解释是否足够清楚。 This is how the graph looks
很抱歉,如果这太笨了,我是R的新手,对循环没有太多的经验,更不用说循环和图了。关于如何解决这个问题的任何想法?
编辑:我按照Stefan所说的那样使用了 .data
for(i in 3:12) {
GeneName <- colnames(AllPatients[,".png")
ggplot(AllPatients,y = .data[[GeneName]])) +
geom_point()
ggsave(FileName)
}
成功了,谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。