首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >are图2散点图颜色混淆

are图2散点图颜色混淆
EN

Stack Overflow用户
提问于 2016-07-14 22:06:22
回答 2查看 503关注 0票数 0

当您运行此代码时,您将看到带B的方面有一个红色点,但它显然应该是红色的。如何正确设置给定数据框架"d“的颜色?

谢谢。

代码语言:javascript
复制
d = data.frame(x = c(1,2,3),y = c(4,5,6), color = c("red","blue","red"), group = c("A","B","A"))
d
ggplot(data= d, aes(x = x, y = y ) ) +geom_point( color = d$color)+
facet_wrap(~group)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-14 22:22:14

base绘图不同,ggplot并不期望您的数据中有一列颜色名称。它希望您有一个列,该列定义要用哪个变量着色,并且可以选择指定该向量的值与自定义颜色之间的映射(如果您不喜欢默认值的话)。

在您的数据中,color列似乎是基于group列的。这将是创建绘图的规范ggplot方法(请注意,没有使用color列):

代码语言:javascript
复制
ggplot(data = d, aes(x = x, y = y, color = group)) +
  geom_point() + 
  facet_wrap(~group)

注意,您不需要用同一列对面和颜色进行调整,例如,

代码语言:javascript
复制
ggplot(data = mtcars, aes(x = wt, y = mpg, color = factor(cyl))) +
  geom_point() +
  facet_wrap(~ am)

关键是要将一列映射到aes().内部的aes() aes()参数。当涉及到方面时,ggplot可能会在幕后对数据进行复杂的分割。此数据操作基于提供给aes中提供的数据参数和列名的数据。

如果指定data$column,则只传递一个向量。您已经从您的数据框架中获取了它,但是ggplot不知道这一点--它可能来自任何地方。这将导致为方面所做的细分中的错误。您需要使用aes(color = column) (注意缺少data$ -只使用aes()中的列名),ggplot将在数据中查找该名称的列,并知道如何正确筛选每个方面的数据。

票数 2
EN

Stack Overflow用户

发布于 2016-07-14 22:11:37

这是一种方法:

代码语言:javascript
复制
ggplot(data= d, aes(x = x, y = y ) ) + 
    geom_point(aes(color = color))+
    facet_wrap(~group) + 
    scale_color_manual(values = c('red' = 'red','blue' = 'blue'))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38385005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档