簡體   English   中英

使用帶有共享圖例的 plotly 子圖 function,讓每個組在圖例中只出現一次

[英]Using plotly's subplot function with a shared legend, have each group appear only once in the legend

我有下圖:

df1 <- data.frame(col1 = rep(LETTERS[1:3], each = 4), col2 = rnorm(12), col3 = runif(12), col4 = rep(c("Fred", "Bob"), each = 6))
df1_list <- split(df1, df1$col1)
colors <- setNames(c('red', 'blue'), c("Fred", "Bob"))
lapply(df1_list, function (arg1) {
  plotly::plot_ly(arg1, x = ~col2, y = ~col3, color = ~col4, colors = colors) %>%
    layout(showlegend = T)
}) %>%
  subplot()

圖例顯示了每個人的名字兩次。 是否有一種有效的編程方式在圖例中僅顯示每個名稱一次? 我不希望單獨生成每個圖表,並為除一個之外的所有圖表手動分配showlegend = F

我建議通過 ggplot2 繞道而行的解決方案。 希望這對您的目的有所幫助。

library(tidyverse)
library(plotly)
df1 <- data.frame(col1 = rep(LETTERS[1:3], each = 4), col2 = rnorm(12), col3 = runif(12), col4 = rep(c("Fred", "Bob"), each = 6))

p <- ggplot(df1, aes(col2, col3)) + geom_point(aes(color = col4)) + facet_wrap("col1")

plotly::ggplotly(p)

暫無
暫無

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

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