Как изменить стиль линии по умолчанию для каждой сюжетной фигуры в файле ar - PullRequest
0 голосов
/ 05 марта 2020

Я пишу статью, которая потребует нескольких цифр с несколькими строками в каждой. Я хочу, чтобы все цифры были отформатированы одинаково. Например: все строки должны быть 2pt, и моя первая строка синего цвета и solid, вторая красного и пунктирного, третья зеленого и пунктирного, et c. В настоящее время я устанавливаю все эти свойства вручную на каждом рисунке (как показано ниже). Есть ли более эффективный способ сделать это для большого числа фигур? Могу ли я изменить стиль линий по умолчанию для plotly? Я не видел ничего, связанного с этой проблемой, кроме команды colorway. Заранее спасибо!

Пример кода:

library(plotly)
x <- c(0,1,2)
y1 <- c(0,1,2)
y2 <- c(2,3,4)
y3 <- c(4,3,2)
figData <- data.frame(x,y1,y2,y3)
fig1 <- plot_ly(figData, x=~x, y=~y1, type = 'scatter', mode = 'lines',
         line = list(color = rgb(.04,.27,.66), width = 2)) %>%
add_trace(y=~y2, line = list(color = rgb(.78,.04,.08), width = 2,dash="dash"))
fig1
fig2 <- plot_ly(figData, x=~x, y=~y2, type = 'scatter', mode = 'lines',
         line = list(color = rgb(.04,.27,.66), width = 2)) %>%
add_trace(y=~y3, line = list(color = rgb(.78,.04,.08), width = 2,dash="dash"))
fig2

Я знаю, что matplotlib имеет такую ​​возможность, используя что-то вроде:

mpl.rcParams['axes.prop_cycle'] = mpl.cycler(color=["b", "r", "g"]) 

, поэтому мне было интересно, есть ли что-то в сюжете похоже.

1 Ответ

0 голосов
/ 05 марта 2020

Мы можем создать объект, который содержит детали для подобных линий и ссылаться на них в графических кодах. Если вы хотите внести изменения в эти строки, просто отрегулируйте значения в line1 или line2, и это будет применяться ко всем, где вы вызываете этот тип линии.

library(plotly)
x <- c(0,1,2)
y1 <- c(0,1,2)
y2 <- c(2,3,4)
y3 <- c(4,3,2)

line1 <- list(color = rgb(.04,.27,.66), width = 2)
line2 <- list(color = rgb(.78,.04,.08), width = 2,dash="dash")

figData <- data.frame(x,y1,y2,y3)

fig1 <- plot_ly(figData, x=~x, y=~y1, type = 'scatter', mode = 'lines',
                line = line1) %>%
  add_trace(y=~y2, line = line2)


fig2 <- plot_ly(figData, x=~x, y=~y2, type = 'scatter', mode = 'lines',
                line = line1) %>%
  add_trace(y=~y3, line = line2)

fig2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...