[英]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.