【发布时间】:2014-01-24 11:11:56
【问题描述】:
我有一个数据框 df 有 10 列这样的,
row.names c(300, 400, 500, 600, 700) X1 X2 X3 X4 X5 X6 X7 X8 X9
1 absTLM_3_4 300 -4.147782e-08 -3.360635e-08 -3.306786e-08 -3.133482e-08 -3.124207e-08 -3.056317e-08 -3.020253e-08 -2.950814e-08 -2.955155e-08
2 absTLM_4_5 400 -3.703708e-08 -3.013687e-08 -2.746570e-08 -2.627163e-08 -2.528328e-08 -2.457543e-08 -2.437666e-08 -2.412295e-08 -2.358447e-08
3 absTLM_5_6 500 -3.575756e-08 -2.694028e-08 -2.457341e-08 -2.331162e-08 -2.262283e-08 -2.180886e-08 -2.104917e-08 -2.101946e-08 -2.081650e-08
4 absTLM_6_7 600 -2.454283e-08 -2.152165e-08 -1.967477e-08 -1.885213e-08 -1.835989e-08 -1.814608e-08 -1.806438e-08 -1.785795e-08 -1.784158e-08
5 absTLM_7_8 700 -2.317125e-10 -1.029456e-08 -1.076342e-08 -1.365264e-08 -1.378578e-08 -1.457421e-08 -1.463740e-08 -1.480280e-08 -1.515121e-0
现在我想在 x 轴上绘制第 1 列,在 y 轴上绘制第 2、5、6 和 8 列。为此,我使用以下代码,
x4 <- melt(df, id=names(df)[1], measure=names(df)[c(2, 5, 6, 8)], variable = "cols")
plt <- ggplot(x4) +
geom_line(aes(x=x,y= value, color=cols), size=1) +
labs(x = "x", y = "y")
当我调用绘图对象 plt 时,我得到 eval(expr, envir, enclos) 中的错误:找不到对象“x”。
有人可以指出我应该在这里更改什么以正确显示情节。
谢谢。
【问题讨论】:
-
X4中没有名为x的列。请参阅head(x4)并相应地调整您的geom_line(aes())。 -
该列的名称似乎是
X1,而不是x。 -
@BrandonBertelsen 似乎我需要的第一列的列标题被命名为
c(300, 400, 500, 600, 700),现在当我使用plt <- ggplot(x4) + geom_line(aes(x=c(300, 400, 500, 600, 700),y= value, color=cols), size=1) + labs(x = "x", y = "y")时我仍然收到错误,例如,美学必须是长度一,或者与dataProblems长度相同:c(300, 400, 500, 600, 700) -
我认为您应该只重命名列并使用典型样式(仅在列名中没有空格
_或.)。colnames(df)[1] <- "x",也许你的原始代码可以工作。你能提供给我们dput(head(df))吗?