如何解决geom_label() 等效于 {echarts4r}
问题
我正在尝试使用 {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"
))
解决方法
我认为这是解决方案。目前我不确定它是如何工作的,因为文档有点有限,但它似乎有效:
data %>%
e_chart(date_eaten) %>%
e_scatter(tastiness,symbol_size = 10,bind = fruit) %>%
e_labels(formatter = htmlwidgets::JS("
function(params) {
return(params.name)
}
"))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。