现有图的R语言颜色编码点

时间:2014-11-16 22:38:33

标签: r graph

我正在关注MITx:15.071x在线分析边缘课程,我正在尝试确定如何在图表上为代码点着色。我可以使用下面的第1行成功制作纬度和经度图表。但是,当我尝试第二行时,我只得到一个空白图。当我将第1行中的原始图形保留为焦点时,我无法在不将焦点返回到控制台的情况下键入任何代码,然后键入第二行不会执行任何操作。我是stackoverflow和R的新手,所以任何见解都值得赞赏。谢谢!

1.plot(波士顿$ LON,波士顿$ LAT)

2.points(波士顿$ LON [波士顿$ CHAS == 1],波士顿$ LAST [波士顿$ CHAS == 1],col =“蓝色”,pch = 19)

2 个答案:

答案 0 :(得分:1)

函数points只能在先前调用函数plot后使用,因此您可以按顺序调用以下函数

plot(mtcars$disp[mtcars$cyl==4],mtcars$mpg[mtcars$cyl==4],col='red',pch=16,ylim=range(mtcars$mpg),xlim=range(mtcars$disp))
points(mtcars$disp[mtcars$cyl==6],mtcars$mpg[mtcars$cyl==6],col='blue',pch=16)
points(mtcars$disp[mtcars$cyl==8],mtcars$mpg[mtcars$cyl==8],col='black',pch=16)

enter image description here

您还可以查看包ggplot2,这使得这种事情更简单

library(ggplot2)
ggplot(data=mtcars,aes(x=disp,y=mpg,color=factor(cyl))) + geom_point()

enter image description here

答案 1 :(得分:1)

以下是如何在一个情节调用中执行此操作:

plot(boston$LON, boston$LAT, 
                   col=c("black", "blue")[ (boston$CHAS==1)+1 ] )

这使用由+1形成的逻辑向量的隐式强制(通过(boston$CHAS==1)操作)从FALSE / TRUE(或{0,1})到{1,2}然后被使用从颜色矢量索引。这种颜色向量在R中称为调色板。findInterval函数允许您紧凑地创建一个多值整数向量,可以从更大的调色板向量中进行选择。

(你的方法应该成功地在第一行形成的情节上绘制蓝点,但也许是“LAT”的错误拼写让你绊倒?)