3

我有以下数据框:

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

测试1:测试1

但实际上我想运行以下命令,因为我分析的数据集的 colnames 有时是不同的。

q <- ggplot(test, aes(test[,1], test[,2], color=Type)) + geom_point(size=10) + labs(title = "test2")
q <- q + facet_wrap("Condition")
q

但输出错误,如“test2”: 测试2

有人可以告诉我一个解决方案吗?谢谢你的帮助!


编辑这个问题是通过像这样使用 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

谢谢你们!

4

1 回答 1

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)
于 2013-12-04T16:00:08.373 回答