美学必须是长度一或相同的长度

Aesthetics must either be length one or the same length

我正在尝试绘制值和误差线,这是一项看似简单的任务。由于脚本相当长,我试图将此处的代码限制为必要的数量。

我可以绘制没有误差线的图表。但是,当尝试添加错误栏时,我收到消息

Error: Aesthetics must either be length one, or the same length as the dataProblems:Tempdata

这是我正在使用的代码。 Tempdata 数据框中的所有向量的长度都是 390。

Tempdata <- data.frame (TempDiff, Measurement.points, Room.ext.resc, MelatoninData, Proximal.vs.Distal.SD.ext, ymax, ymin)
p <- ggplot(data=Tempdata, 
        aes(x = Measurement.points, 
            y = Tempdata, colour = "Temperature Differences")) 
p + geom_line(aes(x=Measurement.points, y = Tempdata$TempDiff, colour = "Gradient Proximal vs. Distal"))+
geom_errorbar(aes(ymax=Tempdata$ymax, ymin=Tempdata$ymin))

问题是引号之间有颜色变量。你应该把变量名放在那个地方。因此,将 "Temperature Differences" 替换为 TempDiff 并将 "Gradient Proximal vs. Distal" 替换为 Proximal.vs.Distal.SD.ext 可能会解决您的问题。

此外:您不能调用两个不同的 colour-变量。

改进后的ggplot代码大概是这样的:

ggplot(data=Tempdata, aes(x=Measurement.points, y=TempDiff, colour=Proximal.vs.Distal.SD.ext)) + 
  geom_line() +
  geom_errorbar(aes(ymax=ymax, ymin=ymin))

我还修复了您的原始代码的更多问题:

  • Roland 报告的 $ 问题
  • 您的 aes
  • 中存在调用冲突这一事实
  • 您在第一个 aes
  • 中调用数据框的事实