美学必须是长度一或相同的长度
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
中调用数据框的事实
我正在尝试绘制值和误差线,这是一项看似简单的任务。由于脚本相当长,我试图将此处的代码限制为必要的数量。
我可以绘制没有误差线的图表。但是,当尝试添加错误栏时,我收到消息
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
中调用数据框的事实