簡體   English   中英

R:Plotly 圖例重復?

[英]R: Plotly Legend Duplicated?

我正在使用 R 編程語言。

我為一些隨機數據制作了下圖:

library(plotly)

myFun <- function(n = 5000) {
  a <- do.call(paste0, replicate(5, sample(LETTERS, n, TRUE), FALSE))
  paste0(a, sprintf("%04d", sample(9999, n, TRUE)), sample(LETTERS, n, TRUE))
}

file = data.frame(var1 = rnorm(100,100,100), var2 = rnorm(100,100,100) , var4 = myFun(100))
file$ratio = file$var1/file$var2
file[is.na(file)] <- 0
file$color = ifelse(file$ratio < median(file$ratio), "big", "small")


pal <- c("red", "blue")

pal<- setNames(pal, c("big", "small"))

p = plot_ly(file, x = ~log(var1), y = ~var2, text = ~paste("name:", var4), color = ~color, colors = pal, type = "scatter")

p = p %>% layout(title = 'title1',  xaxis = list(title = 'title2'), yaxis = list(title = 'title3'))

p =p %>% add_trace( text = paste("name :", file$var4, "<br> var1_val :", file$var1, "<br> var2_val:", file$var2, "<br> Ratio :", file$ratio), hoverinfo = "text", showlegend = TRUE)

這會產生下圖:

在此處輸入圖像描述

一切似乎都在工作 -唯一的問題是圖例似乎是重復的。

我一直在嘗試不同的組合(例如使用 plotly 調用刪除某些選項)以查看我是否可以以某種方式刪除圖例的重復項 - 但到目前為止似乎沒有任何效果。

有人可以告訴我該怎么做嗎?

謝謝!

默認情況下使用showlegend = FALSE inherit = TRUEadd_trace中繼承plot_ly的所有屬性

p =p %>%   
  add_trace( text = paste("name :", file$var4, "<br> var1_val :", file$var1, "<br> var2_val:", file$var2, "<br> Ratio :", file$ratio), 
  hoverinfo = "text", showlegend = FALSE)

或者使用inherit = FALSEshowlegend = TRUE

p %>% 
 add_trace( text = paste("name :", file$var4, "<br> var1_val :", file$var1, "<br> var2_val:", file$var2, "<br> Ratio :", file$ratio), hoverinfo = "text", showlegend = TRUE, inherit = FALSE)

暫無
暫無

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

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