如何使用 e_charts() 在同一图表中组合条形图和折线图?

How can I combine bar and line viz in same chart using e_charts()?

我正在尝试在同一可视化上组合条形图和线图,而每个图的数据来自不同的数据集。所以我正在尝试的代码:

library(dplyr)
library(echarts4r)

set.seed(600)
df1 <- data.frame(
  #class = c(rep("1st", times = 60), rep("2nd", time = 30), rep("3rd", time = 30)),
  week = rep(1:20, times = 3),
  cat = c(rep("A", times = 20), rep("B", times = 20), rep("C", times = 20)),
  count = round(runif(60, 1, 100))
)

df <- data.frame(
  week = rep(1:20, times = 2),
  cat = c(rep("D", times = 20), rep("E", times = 20)),
  count = round(runif(40, 1, 100))
)

df1 %>%
      group_by(cat) %>%
      e_charts(week) %>%
      e_bar(count, bind = cat) %>%
      e_tooltip(
        formatter = htmlwidgets::JS("
        function(params){
        return('<strong>' + params.name + 
                '</strong><br />week: ' + params.value[0] + 
                '<br />count: ' + params.value[1]) 
                }
       ")
      ) 

考虑到可视化项上的数据 df,尝试添加行。以下是我想要实现的目标:

在这里我使用了 echarts4rProxy() 但在 Shiny 之外也可以做同样的事情吗?

是否可以更改条形和线条的颜色?

谢谢!!

是的,

要按照处理 2 个不同数据集的方式进行操作,您可以使用 e_data 传递新数据,就像 e_charts 但在 echarts4r 管道中。

library(dplyr)
library(echarts4r)

set.seed(600)
df1 <- data.frame(
  #class = c(rep("1st", times = 60), rep("2nd", time = 30), rep("3rd", time = 30)),
  week = rep(1:20, times = 3),
  cat = c(rep("A", times = 20), rep("B", times = 20), rep("C", times = 20)),
  count = round(runif(60, 1, 100))
)

df <- data.frame(
  week = rep(1:20, times = 2),
  cat = c(rep("D", times = 20), rep("E", times = 20)),
  count = round(runif(40, 1, 100))
)

df1 %>%
  group_by(cat) %>%
  e_charts(week) %>%
  e_bar(count, bind = cat) %>%
  e_data(data = group_by(df, cat), x = week) %>% 
  e_line(count) %>% 
  e_tooltip(
    formatter = htmlwidgets::JS("
    function(params){
    return('<strong>' + params.name + 
            '</strong><br />week: ' + params.value[0] + 
            '<br />count: ' + params.value[1]) 
            }
    ")
  )