我有以下数据框:
test <- data.frame(x=c(1:8), y=c(8:1), Type=c("A","A","A","A","B","B","B","B"), Condition=c("aa","bb","cc","dd"))
x y Type Condition
1 1 8 A aa
2 2 7 A bb
3 3 6 A cc
4 4 5 A dd
5 5 4 B aa
6 6 3 B bb
7 7 2 B cc
8 8 1 B dd
当我运行以下命令时,我可以得到像“test1”这样的正确图形。
q <- ggplot(test, aes(x, y, color=Type)) + geom_point(size=10) + labs(title = "test1")
q <- q + facet_wrap("Condition")
q
test1:
但实际上我想运行以下命令,因为我分析的数据集的名称有时会有所不同。
q <- ggplot(test, aes(test[,1], test[,2], color=Type)) + geom_point(size=10) + labs(title = "test2")
q <- q + facet_wrap("Condition")
q
但是输出错误就像“test2”:
有人可以告诉我一个解决方案吗? 谢谢你的帮助!
编辑 通过使用像这样的aes_string()解决了这个问题。
p <- ggplot(test, aes_string(x = colnames(test)[1], y = colnames(test)[2], color="Type")) + geom_point(size=10)
p <- p + facet_wrap("Condition")
p
谢谢大家!
答案 0 :(得分:3)
ggplot
不喜欢aes
内的列索引。使用aes_string()
代替索引列名:
ggplot(data=test,
mapping=aes_string(x=names(test)[1], y=names(test)[2], color="Type")) +
geom_point(size=10) +
facet_wrap(~ Condition)