我正在做一个关于功能数据分析的项目,我正在尝试绘制意大利面条图的高度。我正在使用 lattice 库中的 xyplot。为什么y轴包裹在xyplot中?
在这里,我只为一个人绘制数据。如果绘制整个数据集,它看起来像一块粗线。
我在 R 中的代码是:
xyplot(height ~ age|sex, p_data, type="l", group=id)
导致:
Without seeing p_data
it's hard to say, but based upon the axis labelling I would guess that height
is being treated as a factor variable.
Run is.factor(p_data$height)
, and if the answer is TRUE
then try
p_data$height <- as.numeric(levels(p_data$height))[p_data$height]
and repeat your plot. If this doesn't work then at least give us some idea of what the p_data
dataframe looks like.
@Joe 让您走上了正确的道路。几乎可以肯定的是,该height
变量被视为一个因子(分类变量)而不是一个连续的数值变量:
例如 - 我可以通过以下方式复制类似的问题:
p_data <- data.frame(height=c(96,72,100,45),age=1:4,sex=c("m","f","f","m"),id=1)
p_data$height <- factor(p_data$height,levels=p_data$height)
# it's all out of order cap'n!
p_data$height
#[1] 96 72 100 45
#Levels: 96 72 100 45
# same plot call as you are using
xyplot(height ~ age|sex, p_data, type="l", group=id)
如果你像这样修复它:
p_data$height <- as.numeric(as.character(p_data$height))
....然后相同的调用给出了适当的结果:
xyplot(height ~ age|sex, p_data, type="l", group=id)