You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Tidyverse绘制单条纯色折线、散点按变量分色的折线图

问题原因

你当前代码将color = imputation_indicator写在了全局ggplot()的美学映射(aes())中,所有默认继承全局映射的图层都会按照该分类变量拆分着色,因此折线会随分类变量拆分为多段显示不同颜色,不符合需求。

修正方案

将颜色映射规则从全局美学映射中移除,仅在散点图层单独配置按分类变量着色的规则,折线图层单独指定统一颜色即可,修正后可运行代码如下:

suppressPackageStartupMessages(library(mice))
suppressPackageStartupMessages(library(tidyverse))

airquality_indicator <- airquality %>% 
  mutate(imputation_indicator = if_else(is.na(Ozone), "imputed", "observed"))

airquality2 <- tidyr::fill(airquality_indicator, Ozone)

head(airquality2, 30) %>% 
  ggplot(aes(x = Day, y = Ozone)) + 
  # 折线设置为单一统一颜色,不继承分类分色规则
  geom_line(color = "#1f77b4") + 
  # 仅散点按照imputation_indicator分类取值显示不同颜色
  geom_point(aes(color = imputation_indicator)) + 
  labs(y = "ozone  (ppb)",
       x = "Day Number",
       color = "数据类型")

可选调整项

  • 折线颜色可自行替换:将geom_line()中的color参数值修改为你需要的颜色名或十六进制色值即可
  • 如需自定义散点配色,可在绘图代码末尾追加scale_color_manual()图层手动指定分类对应颜色,示例:
# 自定义散点:观测值为黑色,插补值为红色
+ scale_color_manual(values = c("imputed" = "red", "observed" = "black"))

内容的提问来源于stack exchange,提问作者Ator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 10:30:55