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