Добавление размера и цвета с третьей переменной для построения графика - PullRequest
0 голосов
/ 10 октября 2018

Я хочу контролировать цвет и размер моих маркеров, используя график, как пример здесь:

library(plotly)

d <- diamonds[sample(nrow(diamonds), 1000), ]

p <- plot_ly(d, x = ~carat, y = ~price, color = ~carat, size = ~carat)

Теперь я хочу контролировать размер с помощью другой переменной и делать это с течением времени.Тогда это делает странное групповое решение.

mydf <- data.frame(
  Date = seq.POSIXt(from = as.POSIXct("2015-06-29 00:00:00"), 
                    to = as.POSIXct("2015-06-30 00:00:00"), by = "hour"), 
  a = runif(25, min = 1, max = 5000), 
  b = runif(25, min = - 20, max = 25))

# Works
plot_ly(data = mydf, x =~Date, y=~a, 
  type = "scatter", mode = "markers", name = 'a', showlegend = TRUE)

# Doesn't work
plot_ly(data = mydf, x =~Date, y=~a, 
  type = "scatter", mode = "markers", name = 'a', showlegend = TRUE, color = ~b, size =~b)

Чего мне не хватает?

1 Ответ

0 голосов
/ 10 октября 2018

Кажется, что он забывает пределы оси X, потому что если вы увеличиваете масштаб, вы можете видеть точки правильно, поэтому, возможно, решение может быть таким:

plot_ly(data = mydf, x =~Date, y=~a, 
        type = "scatter", mode = "markers", name = 'a', showlegend = TRUE, color = ~b, size =~b) %>%
layout(xaxis = list(range = c(min(mydf$Date), max(mydf$Date))))

enter image description here

Или вычтите до минимума и добавьте к максимуму произвольную величину, чтобы не было наименьшей, а точки первой оси X на краях, как:

plot_ly(data = mydf, x =~Date, y=~a, 
        type = "scatter", mode = "markers", name = 'a', showlegend = TRUE, color = ~b, size =~b) %>%
layout(xaxis = list(range = c(min(mydf$Date)-5000, max(mydf$Date)+5000)))

enter image description here

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