• R语言已解决
  • 用 echarts4r 包 e_morph 函数绘图时出现一点和案例不同的细节

本楼主今天刚好翻了下 echarts 还有 echarts4r 的更新日志,留意到后者新增了一个 e_morph函数,这是用来展示不同图形之间变形的,比如案例就展示了一个饼图与一个条形图之间变来变去。楼主参照 e_morph 函数的案例还有 echarts 的这个案例也绘制了一个地图和一个条形图,然鹅有一点区别是,楼主绘制的图形总是“从地图变成条形图”,并没有“从条形图变成地图”。代码如下:

library(echarts4r)
json <- jsonlite::read_json("https://raw.githubusercontent.com/shawnbot/topogram/master/data/us-states.geojson")
#如果网速不给力,链接的 json 文件可以先下载下来再导入
#json <- jsonlite::read_json("data/us-states.geojson")

e1 <- USArrests |>
  tibble::rownames_to_column("states") |>
  e_charts(states) |>
  e_map_register("USA", json) |>
  e_map(Murder, map = "USA") |>
  e_visual_map(Murder,
               universalTransition = TRUE,
               animationDurationUpdate = 1000L)

e2 <- USArrests |>
  tibble::rownames_to_column("states") |> dplyr::arrange(Murder) |>
  e_charts(states) |>
  e_bar(Murder,
        universalTransition = TRUE,
        animationDurationUpdate = 1000L) |>
  e_flip_coords()

cb <- "() => {
  let x = 0;
  setInterval(() => {
    x++
    chart.setOption(opts[x % 2], true);
  }, 3000);
}"

e_morph(e1, e2, callback = cb)

楼主的echarts4r包升级到了0.4.5。

e_visual_map里的这两个参数universalTransition = TRUE, animationDurationUpdate = 1000L挪到e_map里面,就可以正常来回变换了。

但是换个顺序的

e_morph(e2, e1, callback = cb)

似乎还有问题

    fenguoerbian
    是的,按照原来的顺序挪完就正常了。为撒需要换个顺序呢?换了就只有 e2 代表的条形图,都不变了。我猜换顺序的话,下面这段也得改,但我看不懂。

    cb <- "() => {
      let x = 0;
      setInterval(() => {
        x++
        chart.setOption(opts[x % 2], true);
      }, 3000);
    }"

      yuanfan

      我在e_morph里换个顺序只是想试试是不是这个代码彻底能跑了。e_morph自己的例子里直接换换里面图像的顺序是OK的。