【发布时间】:2015-06-26 09:15:15
【问题描述】:
关于这个主题已经有很多问题了,但我找不到能回答我具体问题的问题。
我有一个barplot(参见下面的testplot1 和testplot3)正在绘制一个数据集(下面的bardata),并想从另一个数据集(pointdata)向它添加点。请参阅简化示例:
bardata <- data.frame(
xname = c(1, 1, 1, 2, 2, 2, 3, 3, 3),
yvalue = c(1, 2, 3, 2, 3, 1, 4, 2, 1),
colorname = c("a", "b", "c", "a", "b", "c", "a", "b", "c")
)
pointdata <- data.frame(
xname = c(1, 1, 3),
ypos = c(2, 4, 3),
ptyname = c("p", "q", "r")
)
testplot1 <- qplot(xname, yvalue, data= bardata, stat = "identity",
fill= factor(colorname), geom = "bar")
testplot2 <- testplot1 +
geom_point(data = pointdata, mapping =
aes(x = xname, y = ypos, shape = factor(ptyname))
)
现在testplot1 工作得很好,但是testplot2 给出了错误
因素(颜色名称)错误:找不到对象“颜色名称”。
我不明白他为什么这么说,我想知道,但这不是我的主要问题,因为有一个简单的解决方法,请参阅下面的testplot3。
testplot3 <- qplot(xname, yvalue, data= bardata, stat = "identity",
fill= factor(bardata$colorname), geom = "bar")
testplot4 <- testplot3 +
geom_point(data = pointdata, mapping =
aes(x = xname, y = ypos, shape = factor(ptyname)))
现在这个程序说:
错误:美学长度必须为 1,或与 数据问题:xname、ypos、因素(ptyname)。
所以我的问题是:这甚至意味着什么?显然aes 和数据的长度都是3。pointdata 中的行数少于bardata 中的行数,但这本身不是问题,例如看这个答案:https://stackoverflow.com/a/2330825/2298323
那么这里发生了什么? (以及如何在我的情节中获得我的观点?)
【问题讨论】: