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

使用ggplot2优化多线图可读性:添加趋势模糊或图例标识

需求
  • 之前尝试给所有线条设置不同样式,但被指出操作过于复杂,现基于现有代码,希望实现以下任一功能:
    1. 给每套公寓历年销售记录的线条添加趋势模糊效果;
    2. 在图例中新增一条浅灰色线条,标注其代表“公寓”。
现有R代码
data.frame(years, xxx, col6, col8, col9, col10, col13, col15, col16, col17, col18, col33, 
            col34, col39, col40, col41, col43, col44, col46, col48, col49, col50, col53, 
            col54, col55) %>% # 创建包含24套公寓的数据集
  pivot_longer(-years) %>% # 将年份设为X轴,转换为长格式
  mutate(is_real = !is.na(value)) %>%
  group_by(name) %>% # 按公寓分组
  mutate(value = pracma::interp1(years, value, years, "linear")) %>% # 线性插值补全缺失值
  ggplot(aes(years, value, group = name)) +
  theme_classic() +
  geom_line(na.rm = TRUE, linewidth = 4, alpha = 0.3) +
  geom_line(aes(linetype=name)) +
  geom_point(data = . %>% filter(is_real), na.rm = TRUE, size = 2) + # 绘制真实数据点
  geom_segment(aes(x = 2016, y = 0, xend = 2016, yend = 5000000,
                    linetype = "Big Storm")) + # 添加2016年风暴标记线
  scale_y_continuous(labels = scales::dollar, trans = "log10") + # Y轴设为对数刻度,显示货币格式
  scale_x_continuous(name="销售年份", labels=as.character(years), breaks=years) + # X轴显示所有年份
  scale_linetype_manual(name="", values=c("Big Storm"=1)) + # 为风暴线添加图例
  theme(axis.text.x=element_text(angle=90, vjust=0.5, hjust=1)) # X轴标签旋转90度
当前图表效果

多线图效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 00:23:19