0

我正在做一个关于功能数据分析的项目,我正在尝试绘制意大利面条图的高度。我正在使用 lattice 库中的 xyplot。为什么y轴包裹在xyplot中?

在这里,我只为一个人绘制数据。如果绘制整个数据集,它看起来像一块粗线。

我在 R 中的代码是:

xyplot(height ~ age|sex, p_data, type="l", group=id)

导致:

在此处输入图像描述

4

2 回答 2

2

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.

于 2013-08-27T04:52:34.057 回答
1

@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)

在此处输入图像描述

于 2013-08-27T05:01:07.447 回答