所以我把这张桌子称为:" linearsep" :
color x y
1 red 1 1
2 red 1 3
3 red 3 3
4 red 2 4
5 blue 4 1
6 blue 6 3
7 blue 2 -2
8 blue 6 -1
每一行对应一个点(1,1; 1,3等......),我只想绘制''红色''用红色点,"蓝色"蓝点。
我知道这是相当愚蠢的:但是我无法找到一种方法来获得前四行的矢量。
我认为是这样的:
情节(linearsep $ color~x,linearsep $ color~y)
但显然它不起作用...... 我用ggplot测试了一些东西:
ggplot(data=a,
+ aes(x=x, y=y, colour=color)) + geom_point()
哪个有效,但似乎是一个' hack' ,我怎么才能得到我想要的矢量? 有人可以帮助我......再次抱歉这个愚蠢的问题
答案 0 :(得分:1)
这是完整的电话
p <- ggplot(foo, aes(x,y)) +
geom_point(aes(colour = color)) +
scale_colour_manual(values = c("red","blue"))
现在你可以做到
p
或
print(p)
通过将ggplot指定给p,您可以在以后添加更多图层
例如,只做p + ggtitle("Plot Title")
。这会比这更容易
再次输入所有内容。
要获取蓝色数据或任何其他条件,您可以进行子集和分配 它到新的data.frame或在ggplot调用中执行
ggplot(subset(a, colour == "blue"), aes(.....
答案 1 :(得分:0)
在基地R:
with(linearsep,plot(x,y,col=color,pch=16))
会给你两种颜色。如果linearsep$color
是一个因素(它可能是),那么颜色将是红色和黑色,因为plot(...)
使用因子级别而不是标签。您可以通过将因子转换为字符来解决这个问题。
linearsep$color <- as.character(linearsep$color)
with(linearsep,plot(x,y,col=color,pch=16))
现在颜色将是红色和蓝色。