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

如何在Plotly R图表的X轴刻度标签中嵌入图片

解决Plotly R中X轴刻度标签嵌入图片的问题

要在X轴刻度标签中同时显示文本和图片,需要手动开启Plotly对刻度HTML的解析支持,并通过自定义刻度数组指定文本与值的对应关系,具体实现如下:

library(plotly)
library(dplyr)
library(tidyr)
library(htmltools)

# 准备数据集
Animals <- c("giraffes", "orangutans", "monkeys")
SF_Zoo <- c(20, 14, 23)
LA_Zoo <- c(12, 18, 29)
data <- data.frame(Animals, SF_Zoo, LA_Zoo) %>% 
  pivot_longer(cols = c(SF_Zoo, LA_Zoo))

# 构造包含图片的HTML刻度文本
tick_text <- lapply(Animals, function(animal) {
  HTML(paste0(animal, " <img src='https://images.plot.ly/language-icons/api-home/r-logo.png' style='height:16px; vertical-align:middle;'/>"))
})

# 生成带HTML刻度的柱状图
plot_ly(data, x = ~Animals, y = ~value, type = 'bar', color = ~name) %>%
  layout(
    barmode = "stack",
    xaxis = list(
      tickmode = "array",          # 启用自定义刻度数组模式
      tickvals = Animals,          # 绑定原始刻度值
      ticktext = tick_text,        # 设置带HTML的刻度显示文本
      tickformatuseHTML = TRUE     # 开启刻度的HTML解析功能
    )
  )

关键说明:

  • 直接在数据列中拼接HTML标签会被Plotly当作纯文本处理,必须通过xaxis的ticktext参数传入经htmltools::HTML处理后的内容
  • tickmode = "array"和tickvals的作用是确保自定义刻度文本与原始数据的X轴值一一对应
  • 可以通过img标签的style属性调整图片大小、对齐方式,避免与文本错位

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 04:25:01