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

如何用ggplot2为图表添加曲线文本?求助实现示例效果

给ggplot2图表添加曲线文本的解决方案

要在你的阶梯图上添加沿路径的曲线文本,需要用到geomtextpath包——它是ggplot2的扩展工具,专门支持沿任意路径(包括阶梯线)放置文本。

步骤1:安装并加载依赖包

先安装并运行所需工具包:

install.packages(c("RCurl", "geomtextpath"))
library(RCurl)
library(ggplot2)
library(geomtextpath)

步骤2:修改绘图代码

在原有代码基础上添加geom_textpath层,将分类标签沿阶梯路径放置,同时调整参数优化显示效果:

x <- getURL("https://raw.githubusercontent.com/karolo89/Raw_Data/main/Hurricane.csv")
hurricane <- read.csv(text = x)

graph1 <-  ggplot(hurricane, aes(year, average, color = type)) +
    geom_step(size=.8) +
    # 添加沿路径的曲线文本
    geom_textpath(
        aes(label = type),  # 用type列作为文本内容
        vjust = -0.5,       # 文本相对路径向上偏移
        hjust = 0.9,        # 文本靠近曲线末端放置
        gap = FALSE,        # 避免文本被路径线条打断
        size = 4,           # 设置字体大小
        fontface = "bold"   # 加粗字体增强可读性
    ) +
    scale_x_continuous(breaks = seq(1860,2020,20)) +
    scale_y_continuous(
        limits = c(0,8.5),
        breaks = seq(2,8,2),
        expand = c(0,0)
    ) +
    scale_color_manual(values = c("#735ad2", "#3b2d74")) +  
    labs(
        y = " ",
        x = " ", 
        title = "15-year average recorded Atlantic basin hurricanes, 1851-2019"
    ) +
    theme_minimal() 
graph1

关键参数说明

  • vjust:控制文本在路径垂直方向的偏移,负数向上、正数向下
  • hjust:控制文本在路径上的水平位置,0对应起点,1对应终点
  • text_smoothing = 10(可选):如果需要让文本在阶梯转角处更平滑,可添加此参数,数值越大平滑效果越强

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 08:03:02