Цветные точки исчезают при создании анимации в R с помощью Plotly - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь создать анимацию в R, используя plotly, где точка может менять цвета в зависимости от ее состояния в текущий момент времени. Каждая точка может переходить из одной фазы в другую в любое время, и я думаю, plotly теряет отслеживание переходов точек из-за смены цветов.

В приведенном ниже коде вы увидите, что анимация плавная без каких-либо цветов. Но когда цвета включены в график, точки начинают плохо себя вести во время анимации - либо они застряли, либо исчезнут, либо прыгнут по всему графику.

У вас есть предложения, чтобы это исправить, или возможно альтернативный способ оживить изменяющееся состояние в R?

library(plotly)

plot_colors <- c(red = "red", gray = "gray")

df <- 
  data.frame(step = rep(1:10, 2),
             id   = c(rep(1, 10), rep(2, 10)),
             x    = c(1:10, 1:10),
             y    = c(1:10, 10:1),
             col  = sample(c("red", "gray"), 20, replace = TRUE)) 

# This animation is smooth  
df %>% plot_ly(x = ~x, y = ~y, frame = ~step, mode = "markers", type = "scatter")

# This animation has the points jumping all over the screen, and points disappear
df %>% plot_ly(x = ~x, y = ~y, frame = ~step, color = ~col, 
               colors = plot_colors, mode = "markers", type = "scatter")

1 Ответ

1 голос
/ 03 апреля 2020

Попробуйте передать цветовой аргумент следующим образом marker = list(color = ~col)

df %>% plot_ly(x = ~x, y = ~y, frame = ~step,
               marker = list(color = ~col),
                 mode = "markers", type = "scatter")

Увеличение размера маркера и добавление линии облегчит просмотр изменения цвета во время анимации

df %>% plot_ly(x = ~x, y = ~y, frame = ~step, marker = list(color = ~col, size = 25, line = list(color = 'black',width = 5)),
               mode = "markers", type = "scatter")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...