当在R中绘制高度〜重量时,需要根据性别对点进行着色

时间:2014-12-11 07:11:59

标签: r

我正在尝试为课程制作散点图。最后一个问题要求我制作一个散点图,显示身高和体重是否显着相关,但教授想要一个说明性的散点图,其中的点根据人的性别着色。我的代码如下。同样公正的警告我对R不是特别熟练,因为这个问题可能很明显。

dt=read.csv("http://rfs.kvasaheim.com/stat4013/spencjw.csv")
attach(dt)
summary(dt)

###Section E 
table(height, weight, gender)
mod=lm(height~weight)
summary(mod)
confint(mod)

plot(height~weight, main="height vs weight", xlab="height",
 ylab="height", abline(lm(height~weight)))

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:1)

如果您的gender变量已经是factor,那么将col=gender参数添加到plot()命令应该已经有效了。否则,您可能需要使用gender重新编码as.factor()。看看?as.factor

考虑pch=19,我发现这比默认圈子更清晰。

我建议阅读 R 简介,该文件应在R GUI的“帮助”菜单下以PDF格式提供。

有关编程的问题更适合Stack标记中的StackOverflow。我将此标记为关闭&迁移。

答案 1 :(得分:0)

根据gender变量的编码方式,您可以执行以下操作:

  • 如果是gender,例如男性为1,女性为2

    plot(height~weight, main="height vs weight", xlab="height",
     ylab="height", col=c("blue","pink")[gender])
    
  • 如果gender是,例如" M"男人和" F"女性:

    plot(height~weight, main="height vs weight", xlab="height", ylab="height",col=sapply(gender,switch,"M"="blue","F"="pink"))

答案 2 :(得分:0)

我认为这是做你需要的最简单方法

require(ggplot2)
dt=read.csv("http://rfs.kvasaheim.com/stat4013/spencjw.csv")
g <- ggplot(dt, aes(x=height, y=weight, colour=gender))
g <- g + geom_point()
g