【问题标题】:geom_label() equivalent in {echarts4r}{echarts4r} 中的 geom_label() 等价物
【发布时间】:2021-06-16 11:27:53
【问题描述】:

问题

我正在尝试使用 {echarts4r} 生成一个可视化,其中涉及绘制带有显示在图表本身上的标签的点,其中标签与点的位置无关。这听起来应该很简单,但到目前为止我还没有找到任何可行的方法,我开始怀疑它是否可能。

期望的输出

这是一个最小的例子。我将使用 {ggplot2} 来展示我(大致)想要重现的内容:

data <- data.frame(
  date_eaten = as.Date(c("2020-01-01", "2020-01-02", "2020-01-03")),
  tastiness = c(5, 7, 10),
  fruit = c("apple", "orange", "mango")
)
data
#>   date_eaten tastiness  fruit
#> 1 2020-01-01         5  apple
#> 2 2020-01-02         7 orange
#> 3 2020-01-03        10  mango

library(ggplot2)

ggplot(data, aes(x = date_eaten, y = tastiness, label = fruit)) +
  geom_point() +
  geom_text(nudge_y = 0.2)

尝试使用e_labels()

这种方法在视觉上正是我想要的,但是,似乎没有选项可以指定从哪些列中获取标签。

library(echarts4r)

data %>% 
  e_chart(date_eaten) %>% 
  e_scatter(tastiness, symbol_size = 10) %>% 
  e_labels()

尝试使用e_mark_point()

此选项允许进行更多自定义,但这并不是一个真正可行的解决方案,因为它非常笨重并且没有严格“链接回”到原始数据:

data %>% 
  e_chart(date_eaten) %>% 
  e_scatter(tastiness, symbol_size = 10) %>% 
  e_mark_point(data = list(
    xAxis = as.Date("2020-01-01"),
    yAxis = 5,
    value = "apple"
  )) %>% 
  e_mark_point(data = list(
    xAxis = as.Date("2020-01-02"),
    yAxis = 7,
    value = "orange"
  )) %>% 
  e_mark_point(data = list(
    xAxis = as.Date("2020-01-03"),
    yAxis = 10,
    value = "mango"
  ))

【问题讨论】:

    标签: r ggplot2 data-visualization echarts echarts4r


    【解决方案1】:

    我认为这是解决方案。目前我不确定它是如何工作的,因为文档有点有限,但它似乎工作:

    data %>% 
      e_chart(date_eaten) %>% 
      e_scatter(tastiness, symbol_size = 10, bind = fruit) %>% 
      e_labels(formatter = htmlwidgets::JS("
        function(params) {
          return(params.name)
        }
      "))
    

    【讨论】:

      猜你喜欢
      • 2019-11-03
      • 1970-01-01
      • 2020-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多