【问题标题】:echarts4r: produce a bar plot with polar coordinatesecharts4r:用极坐标生成条形图
【发布时间】:2018-11-06 20:43:47
【问题描述】:

我正在尝试使用echarts4r,一个流行的 Javascript Echarts 库的 R 接口,来构建一个极坐标系内的条形图

可用的帮助文件表明这是根本不可能。在 R 中,e_bar() 中没有与坐标相关的参数(与 e_line() 不同,它确实有一个)。 Echarts 文档还声明“极坐标可用于散点图和折线图”。

然而,这是 Echarts 库中的一个示例,正是该情节:https://ecomfe.github.io/echarts-examples/public/editor.html?c=bar-polar-real-estate

我的尝试,显然没有成功,是这样的:

gen_int <- function(n, k = 10) {
  sample(as.integer(1:n), size = k, replace = TRUE)
}
library(dplyr)

dat <- tibble(id = letters[1:10],
              x = gen_int(10),
              y = gen_int(10))

library(echarts4r)

dat %>% 
    slice(1:5) %>%
    e_charts(id) %>% 
    e_polar() %>% 
    e_bar(x, coordinateSystem = list('polar')) 

任何想法如何做到这一点?在ggplot2 中,它看起来像这样:

dat %>% 
    ggplot(aes(x = id, y = x)) +
    geom_col() +
    coord_polar()

感谢您的任何提示!

【问题讨论】:

  • @JohnCoene 寻求帮助!顺便说一句,感谢您提供的很棒的图书馆。

标签: r echarts


【解决方案1】:

有趣。我们可以通过稍微修改e_polar 中的示例来实现。

df <- data.frame(x = 1:10, y = seq(1, 20, by = 2))

df %>% 
    e_charts(x) %>% 
    e_polar() %>% 
    e_angle_axis() %>% 
    e_radius_axis() %>% 
    e_bar(y, coordinateSystem = "polar") 

正如您在链接的示例中看到的那样,需要极轴、半径和角度轴。

【讨论】:

  • 顺便说一下,如果分组变量是字符类型(条形图通常是这种情况),则绘图由于某种原因不起作用:df &lt;- data.frame(x = letters[1:10], y = seq(1, 20, by = 2))。我使用完全相同的代码得到一个没有内容的空极坐标图。
  • 好的,感谢您的报告,我从未注意到,我将在下一个版本中添加对径向条的适当支持。
  • 在开发版本中工作,请参阅?e_angle_axis
  • 恐怕仍然不适用于e_bar()(即带有字母的df)。
  • @Maxim.K 道歉,以前的方式有点hacky,通过在e_bare_linee_linee_scatter 中正确实现坐标系在开发版本中修复,还为各种轴函数添加了参数,演示和文档here(页面底部)。 不改变打破
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-14
  • 2018-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多