簡體   English   中英

為什么對於 R 中 plotly 的某些數據點,hovertemplate 沒有正確顯示

[英]Why is hovertemplate not showing up correctly for some data points for plotly in R

mydat2 <- data.frame(subject = c("math", "english", "chemistry"), score = c(80, 50, 65), class = c("A", "B", "A"), count = c(50, 60, 70))

library(plotly)
plot_ly(data = mydat2,
        x = ~score,
        y = ~count,
        color = ~class,
        customdata= ~class,
        hoverinfo = 'text',
        text = ~subject,
        hovertemplate = paste(
           "<b>%{text}</b><br><br>",
           "%{yaxis.title.text}: %{y:,.0f}<br>",
           "%{xaxis.title.text}: %{x:,.0f}<br>",
           "Class: %{customdata}",
           "<extra></extra>"
        ))

在此處輸入圖像描述

我很困惑為什么最左邊的 hover 顯示為%{text}而不是english plot 上其他 2 個點的 hover 標簽非常好。

這是您的圖表,帶有您正在尋找的 hover 模板。 解釋如下。

plot_ly(data = mydat2,
        x = ~score,
        y = ~count,
        color = ~class,
        type = "scatter",
        mode = "markers",
        customdata= ~class,
        hoverinfo = 'text',
        text = ~I(subject),         # <---- I changed!!
        hovertemplate = paste(
          "<b>%{text}</b><br><br>",
          "%{yaxis.title.text}: %{y:,.0f}<br>",
          "%{xaxis.title.text}: %{x:,.0f}<br>",
          "Class: %{customdata}",
          "<extra></extra>"
        ))

在此處輸入圖像描述

我以前見過這個問題。 我通常會想出一個解決方法,但直到現在才真正弄清楚出了什么問題。 我在 GitHub 上找到了一張針對此問題的已關閉票證(2019 年關閉)。 (啊,是的……所以不固定。)顯然,它與使用顏色有關。

然而,亮點......在激烈的一分鍾內,有人實際上認為這是一個問題並提出了解決方案。 @cpsievert 編寫了一些包含lapply調用的代碼(如果您訪問該站點,則在頁面中間)。 當我調查代碼的作用時,我意識到它可以簡單得多(而且一開始就非常簡單)。

如果您想檢查一下,GitHub 上的票就在這里

這是維護者提供的代碼(您實際上並不需要)。

l <- plotly_build(p)$x
l$data <- lapply(l$data, function(tr) { tr[["text"]] <- I(tr[["text"]]); tr })
as_widget(l)

修復是 function I() 而不是hovertext =text = ~subject ,您需要hovertext =text = ~I(subject) <-- 注意I()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM