【问题标题】:Is there a way to use two series (or some kind of group) in highcharter wordcloud?有没有办法在 highcharter wordcloud 中使用两个系列(或某种组)?
【发布时间】:2020-07-01 23:49:56
【问题描述】:

我正在尝试使用 Highcharter R 包(基于 Highcharts 库)创建一个 wordcloud,以在一个 wordcloud 中显示两类情绪(正面和负面)。

重点是我也想展示一个传奇。我的问题是,当我要显示图例时,单词并没有对齐。当我必须以正确的方式显示数据时,我无法显示图例。

显示我的问题的最简单情况如下:

library(tidyverse)
library(highcharter)

positive <-
  c(
    "tranquilo",
    "tranquila",
    "nova"  ,
    "burocratico" ,
    "bom"      ,
    "assertivo"   ,
    "rapido"    ,
    "transparente"
  )

negative <-
  c(
    "trabalhoso" ,
    "conduzida" ,
    "passa"  ,
    "congelada" ,
    "pessima"  ,
    "moroso"   ,
    "pouco",
    "opinar"  ,
    "passado"  ,
    "afastado"
  )

df <- list(
  tibble("term" = positive,
         "sentiment" = "positive"),
  tibble("term" = negative,
         "sentiment" = "negative")
) %>% bind_rows()

df %>%
  hchart(
    "wordcloud",
    hcaes(name = "term", group = "sentiment"),
    showInLegend = TRUE,
    colorByPoint = FALSE
  ) %>%
  hc_colors(c("#E0362C", "#189D3E"))

结果是:

如果我通过“颜色”hcaes(name = "term", color = "sentiment") 更改“组”参数,那么我得到的是:

提前致谢。 弗拉德米尔。

PS:我认为 JS 中的解决方案也可以帮助我。

【问题讨论】:

    标签: javascript r highcharts r-highcharter


    【解决方案1】:

    不可能将单词放置在 2 个单独的系列中。您可以使用一个 wordcloud 系列,其中每个点都定义了seriesId 索引。现在,您可以使用另外 2 个假线系列(它们不能是 wordcloud 类型),您可以在它们上编写自定义 legendItemClick 事件逻辑。每当用户单击图例项时,算法都会遍历所有单词并“隐藏”正确的单词。

    您可以在此处查看此示例:https://jsfiddle.net/BlackLabel/7tq01sn5/

    让我知道您的想法以及此解决方案是否适合您。重写为 R 时,您可以使用 JS("") 函数将您的 JavaScript 函数代码转换为 R。

    【讨论】:

      【解决方案2】:

      偶然发现这个,因为我有同样的问题。

      可能是 highcharter 的问题,但已通过以下方式解决:

      hcaes(name = "term", color = "sentiment")
      

      即“颜色”而不是“颜色”

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-12
        • 2022-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-02
        • 2012-10-25
        • 2012-05-23
        相关资源
        最近更新 更多