ggplot绘图如何修改点颜色 设置蓝色却显示红色的原因及修正方法
错误原因
你给出的代码默认显示红色,是因为colour = "blue"的放置位置不符合ggplot的语法逻辑:
aes()(美学映射函数)的作用是将数据集的变量关联到图形的视觉属性,你在其中传入固定字符串"blue"时,ggplot不会将其识别为颜色值,而是会把它判定为一个只有单个类别的分类变量,自动调用默认分类调色板为这个类别分配颜色,而ggplot默认调色板的第一个颜色就是红色,因此最终画出的是红色点。- 如果你需要为所有点设置统一的固定颜色,不需要关联数据变量,就要把颜色参数放在
aes()之外,作为geom_point()的直接参数传入即可。
修正后的正确代码
library(tidyverse) ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy), colour = "blue")
补充说明
如果后续你需要根据数据集的某列取值区分点的颜色,才需要把colour参数放在aes()内,示例如下:
# 根据车辆类别class区分点的颜色 ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy, colour = class))
内容的提问来源于stack exchange,提问作者cchen
相关产品推荐
相关产品推荐

