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

如何在ggplot中按分组分别连接数据点而非全部连接?

ggplot分组折线错误修复方案

问题说明

当前代码生成的图表将TN、TX两个分组的点全部连在一起,无法实现按分组分别随日期连线的效果。

核心问题

  1. group=1的设置强制所有数据归为同一组,导致所有点被连接成一条线;
  2. Date列是字符串类型,虽当前数据顺序正确,但长期来看存在排序风险。

修复代码

library(ggplot2)
library(tidyr)
library(dplyr)

df %>% 
  select(Date, TN, TX) %>%
  pivot_longer(cols = c(TN,TX), names_to = "Tcombine", values_to = "Value") %>%
  # 将字符串日期转换为日期类型,确保x轴按时间顺序排列
  mutate(Date = as.Date(Date, format = "%d/%m/%Y")) %>%
  ggplot(aes(Date, Value, group = Tcombine, shape = Tcombine, color = Tcombine)) +
  geom_point() +
  geom_line() +
  theme(axis.text.x = element_text(angle = 90, hjust = 1), 
        axis.title.x = element_blank())

修复说明

  • 把group=1替换为group=Tcombine,让ggplot按Tcombine的两个类别(TN、TX)分别分组,各自绘制折线;
  • 添加mutate(Date = as.Date(Date, format = "%d/%m/%Y"))将字符串日期转为标准日期类型,确保x轴严格按时间顺序展示,避免字符排序导致的逻辑错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 00:35:25