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

如何用echarts4r实现分面并按location为折线图着色

用echarts4r复现ggplot分面折线图(按location着色)

首先是生成目标数据框的代码:

group_size <- 20
n_groups <- 13
df <- data.frame("day" = rep(1:group_size, times=n_groups), 
                 "temperature" = runif(group_size * n_groups, 10, 40),
                 "location" = rep(LETTERS[1:n_groups], each=group_size)) %>% 
  mutate("other" = if_else((day %% 2) == 0, "A1", "A2"))

用户已通过ggplot实现预期效果:

df %>% 
  ggplot()+ geom_line(aes(x= day, y = temperature, color = location))+
  facet_wrap(~other) 

用户尝试的echarts4r代码未达成预期,正确实现需注意按location分组映射颜色与分面的正确配置,具体代码如下:

# 自定义每个location的颜色(按需设置,若不需要固定颜色可省略)
location_colors <- setNames(
  c("#FF5733", "#33FF57", "#3357FF", "#FF33A6", "#FFC300", "#8E44AD", "#1ABC9C", 
    "#E74C3C", "#2ECC71", "#3498DB", "#9B59B6", "#F1C40F", "#E67E22"),
  LETTERS[1:13]
)

df |>
  group_by(other, location) |>  # 同时按分面字段和颜色分组字段分组
  e_charts(day) |>
  e_line(temperature) |>
  e_facet(rows = 2, cols = 1, legend_pos = "top", legend_space = 12) |>  # 配置分面布局
  e_color(location_colors) |>  # 绑定自定义颜色与location
  e_x_axis(name = "day") |>
  e_y_axis(name = "temperature")

核心要点:

  • 必须同时按other和location分组,让echarts4r识别每个分面下的不同折线组别
  • e_color传入颜色向量,确保每个location的颜色固定且与图例一致
  • e_facet的rows和cols参数可调整分面排列,示例中2行1列对应ggplot的分面效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 20:40:00