首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法给特定的数据点分配特定的颜色?

有没有办法给特定的数据点分配特定的颜色?
EN

Stack Overflow用户
提问于 2021-01-13 09:54:50
回答 1查看 25关注 0票数 1

我正在做一个散点图,有x和y,还有另一个我想要按颜色排序的变量(n=20)。R在光谱中自动选择这些颜色,因此结果图不容易阅读,特别是对于色盲。我能找到的调色板最多只能有8-10种颜色),而且我需要更多的颜色来表示我变量中的值的数量。

我可以在数据点周围添加黑色笔触,但我正在尝试找到一种更改填充的方法。最好给它分配一种我选择的颜色。

代码语言:javascript
复制
+geom_point(aes(fill=genus), pch=21, size=5, colour="black", alpha=0.8)

希望这能说得通,我是个新手。

EN

回答 1

Stack Overflow用户

发布于 2021-01-13 14:16:39

有多种方法可以在R中实现你想要的东西,其中一种是在董的评论中的链接中提到的。

另一种方法是创建一个颜色变量并为其赋值,并创建一个带有名称的颜色矢量,该矢量与scale_color_manual中使用的变量相对应

代码语言:javascript
复制
# Sample dataframe
x <- data.frame(x = seq(1, 10, by = 1),
        y = seq(1, 10, by = 1),
        color = c("color 1", "color 2", "color 3", "color 4", "color 5",
                  "color 6", "color 7", "color 8", "color 9", "color 10"))
# color map
color_map <- c("red", "green", "yellow", "orange", "black",
               "grey50", "blue", "pink", "cyan", "purple")
names(color_map) <- x[["color"]]

library(ggplot2)

ggplot() + geom_point(data = x,
                      mapping = aes(x = x, y = y, size = 5, color = color)) +
  scale_color_manual(values = color_map)

代码语言:javascript
复制
# Another example with less colors and using Hex code instead of color name
x <- data.frame(x = seq(1, 10, by = 1),
        y = seq(1, 10, by = 1),
        color = c("color 1", "color 2", "color 3", "color 4", "color 5",
                  "color 1", "color 2", "color 3", "color 4", "color 5"))
#              Red        Green      Yellow    Orange    Black
color_map <- c("#FF0000", "#00FF00", "FFFF00", "FFA500", "000000")
names(color_map) <- c("color 1", "color 2", "color 3", "color 4", "color 5")

library(ggplot2)

ggplot() + geom_point(data = x,
                      mapping = aes(x = x, y = y, size = 5, color = color)) +
  scale_color_manual(values = color_map)

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

https://stackoverflow.com/questions/65694613

复制
相关文章

相似问题

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