为什么y轴包含在xyplot中用于纵向数据?

时间:2013-08-27 04:37:09

标签: r lattice

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

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

我在R中的代码是:

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

导致:

enter image description here

2 个答案:

答案 0 :(得分:2)

在没有看到p_data的情况下很难说,但根据轴标记我会猜测height被视为因子变量。

运行is.factor(p_data$height),如果答案为TRUE,请尝试

p_data$height <- as.numeric(levels(p_data$height))[p_data$height]

并重复你的情节。如果这不起作用,那么至少要让我们了解p_data数据框的外观。

答案 1 :(得分:1)

@Joe让你走上了正确的道路。问题几乎肯定是height变量被视为一个因子(分类变量)而不是连续的数字变量:

E.g。 - 我可以通过以下方式复制类似的问题:

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)

enter image description here

如果你这样修理它:

p_data$height <- as.numeric(as.character(p_data$height))

....然后同一个调用给出了一个合适的结果:

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

enter image description here