如何在 plotly 中手动为线条指定线型?

问题描述 投票:1回答:1

我有一个这样的情节。

library(plotly)
library(tidyr)
library(dplyr)

data.frame(date = seq(ymd('2020-01-01'), ymd('2020-05-31'), by = '1 day'), 
           sin = sin(seq(-pi, pi, length.out = 152)), 
           cos = cos(seq(-pi, pi, length.out = 152))) %>% 
  gather(k, v, -date) %>% 
  plot_ly() %>% 
  add_lines(x = ~date, y = ~v, linetype = ~k, color = I('black'))

输出结果如下

enter image description here

我想做的是手动将线型分配给以下值 k 变量,例如,将虚线分配给 cos 和实线到 sin 不管他们的顺序。基本上,我正在寻找相当于 ggplot2::scale_linetype_manualplotly? 如何才能做到不为每行添加新的跟踪?(我不知道具体的 k 价值)。)

r ggplot2 plotly r-plotly
1个回答
2
投票

类似于 这可以通过使用一个命名的线型向量来实现,比如这样。

library(plotly)
library(tidyr)
library(dplyr)
library(lubridate)

lty <- c(cos = "dash", sin = "solid")

data.frame(date = seq(ymd('2020-01-01'), ymd('2020-05-31'), by = '1 day'), 
           sin = sin(seq(-pi, pi, length.out = 152)), 
           cos = cos(seq(-pi, pi, length.out = 152))) %>% 
  gather(k, v, -date) %>% 
  plot_ly() %>% 
  add_lines(x = ~date, y = ~v, linetype = ~k, color = I('black'), linetypes = lty)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.