簡體   English   中英

"Plotly R 順序散點圖圖例條目"

[英]Plotly R order scatter plot legend entries

我以下列方式創建一個情節:

## generate test data
getTestData <- function(seed_val=711, noise=1.0) {
    set.seed(seed_val)
    d <- seq(as.Date('2017/01/01'), as.Date('2017/01/08'), "days")
    first_name <- rep("Jane", 8)
    first_name <- append(first_name, rep("Fred", 8))
    first_name <- append(first_name, rep("Sally", 8))
    y1_vals <- seq(1, 3*8, 1)
    y2_vals <- rnorm(3*8, mean=y1_vals, sd=noise)
    dat <- data.frame(date=d, f_name=first_name, y1=y1_vals, y2=y2_vals,
                  stringsAsFactors = FALSE)
    return(dat)
}

dat <- getTestData()
library(dplyr)
library(plotly)
p1 <- plot_ly(dat, x=~date, y=~y1, color=~f_name,
              type = 'scatter', mode = "lines+markers") %>% 
    layout(yaxis = list(title = "some important y value")) %>% 
    add_trace(y=~y2, name='actual', showlegend=FALSE, 
              type='scatter', mode='lines',
              line=list(width = 2, dash = 'dash'), color=~f_name)

這是你想要的嗎?

dat$f_name <- factor(dat$f_name, levels = c("Jane", "Fred", "Sally"))

plot_ly(dat, x=~date, y=~y1, color=~f_name,
    type = 'scatter', mode = "lines+markers") %>% 
        layout(yaxis = list(title = "some important y value")) %>% 
        add_trace(y=~y2, name='actual', showlegend=FALSE, 
          type='scatter', mode='lines',
          line=list(width = 2, dash = 'dash'), color=~f_name)

在此處輸入圖片說明

要為之前的答案添加一些內容,您還可以為名稱選擇顏色。 請注意,我添加了 Peter 以表明如果無論何時出現 Peter(不是這種情況),它的顏色都是灰色的(我需要選擇閃亮的顏色,並且我需要它們相同,無論它們是否出現,或者以防萬一出現)

 dat$f_name <- factor(dat$f_name, levels = c("Jane", "Fred", "Sally", "Peter")) ccolors <- c('black', 'blue','red', 'gray') plot_ly(dat, x=~date, y=~y1, color=~f_name, colors=ccolors, type = 'scatter', mode = "lines+markers") %>% layout(yaxis = list(title = "some important y value")) %>% add_trace(y=~y2, name='actual', showlegend=FALSE, type='scatter', mode='lines', line=list(width = 2, dash = 'dash'), color=~f_name)

暫無
暫無

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

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