首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在具有特定颜色集的in图中的散点图。怎么才能把传说说对?

在具有特定颜色集的in图中的散点图。怎么才能把传说说对?
EN

Stack Overflow用户
提问于 2017-10-26 09:17:37
回答 1查看 740关注 0票数 0

所以我想在我的散点图中引入一个更多样的颜色图案,因为我的n很高,而且标准集的判别性还不够高。所以,我已经生成了一个颜色向量,但是现在我不能正确地理解这个传说。我不是没有传说,就是有颜色的传说。我很肯定我混淆了美学和属性,但我不知道我做错了什么。

下面是我的代码和三次尝试。我想要实现的是与我创建的颜色向量(col_sample)匹配的颜色,但是图例的名称与dataframe中的name列匹配。

代码语言:javascript
复制
#dataframe
df1 <- data.frame(name = c("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "a", "b", "c", "d", "e"),
             n = rep(1:31, 1),
             value = rep(31:1, 1))

df1$name <- as.factor(df1$name)


#produce color vector
color <- grDevices::colors()[grep('gr(a|e)y', grDevices::colors(), invert = T)] 
col_sample <- sample(color, 31)
col_sample <- as.vector(col_sample) 


#scatterplot
median_scatter <- ggplot(data = df1,
                     aes(x = n, 
                         y = value,
                         col = name))

#try 1: these colors are too similar
median_scatter +
  geom_point() 

#try 2: t he legend dissappears
median_scatter +
  geom_point(col = col_sample) 

#try 3: t he legend dissappears
median_scatter +
  geom_point(aes(col = col_sample))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-26 09:24:37

使用scale_colour_manual手动定义颜色刻度。

代码语言:javascript
复制
median_scatter <- ggplot(data = df1,
                     aes(x = n, 
                     y = value,
                     colour = name))
median_scatter + 
  geom_point() +
  scale_colour_manual(values=col_sample)

注意,legend是绑定到aes的。在“尝试2”中,通过将颜色向量分配给aes(col=name)中的col,您重写了父ggplot中的颜色美学colnamecol_sample之间没有关联,因此没有传说。

在第三次尝试中,您重新分配了aes(col=col_sample),因此颜色名称现在成为分配给默认颜色的变量。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46950357

复制
相关文章

相似问题

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