在R中的散点图中着色特定点

时间:2016-09-09 00:54:39

标签: r

我对R和ggplot2有些新意。我一直在尝试创建一个散点图,其中有一个特定点着色。例如,这是我的基本数据框

manager     Confirmed Overturned  keeping  Stands  total
A.J. Hinch     11         24         0       14     49
Angel Hernandez 0          1         0        0      1
Bill Miller     3          1         0        4      8
Bob Melvin      6         16         0        6      28
Brad Ausmus     3         11         0       13      27

有了这个,我可以使用这段代码

创建一个简单的散点图
p <- ggplot(data = Outcome, aes(x = Overturned, y = total))
p + geom_point()

我知道如何添加一般颜色,并添加色标,但我不知道如何着色一个点。例如,让我们说我想给A.J.上色。 Hinch蓝色,并使每个其他点变成不同的颜色(可能是灰色或黑色),我该怎么做?

以下是我要在Tableau中创建的图表的链接。 https://public.tableau.com/profile/julien1554#!/vizhome/ManagerChallenges2014-2015/Sheet1

感谢所有帮助。

2 个答案:

答案 0 :(得分:4)

您只需在绘图中添加另一个散点图图层。这是我使用的代码。希望它有所帮助!

> df = as.data.frame(cbind(Overturned = c(24,1,1,16,11), total = c(49,1,8,28,27)))
> library(ggplot2)
> p <- ggplot(data = df, aes(x = Overturned, y = total)) # creates the graph
> p + geom_point(data = df, color = "gray") + # creates main scatter plot with gray points
   geom_point(data = df[1,], color = "blue") # colors A.J. Hinch's point blue

以下是结果图: enter image description here

答案 1 :(得分:2)

请注意,我只是使用姓氏,因为当我从剪贴板读取数据时,它认为名字是行标签。

Outcome$color_me <- ifelse(Outcome$manager == "Hinch", "color_me", "normal")
textdf           <- Outcome[Outcome$manager == "Hinch", ]
mycolors         <- c("color_me" = "blue", "normal" = "grey50")

ggplot(data = Outcome, aes(x = Overturned, y = total)) +
  geom_point(size = 3, aes(colour = color_me))

enter image description here

或使用手动定义的颜色:

ggplot(data = Outcome, aes(x = Overturned, y = total)) +
  geom_point(size = 3, aes(colour = color_me)) +
  scale_color_manual("Status", values = mycolors)

enter image description here