Комбинирование диаграммы рассеяния и линейной диаграммы R (без символов на линии) - PullRequest
0 голосов
/ 31 декабря 2018

Я использую Plotly для визуализации некоторых данных (ниже):

y1 <- rnorm(100, mean = 5)
y2 <- rnorm(100, mean = -5)
x <- c(1:100)

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

Я хочу иметь два графика, график рассеяния для y1 (только маркеры) и линейный график для y2 (просто линия,без маркеров).

У меня это работает ...

plot_ly(data, x = ~x, y = ~y1, name = 'symbol only', type = 'scatter', mode = 'markers') %>%
  add_trace(y = ~y2, name = 'line only', mode = 'lines',
             line = list(shape = 'spline', color = 'rgb(200, 12, 46)', width = 2))

Однако я хочу изменить цвет и символ маркеров в y1.Когда я делаю это, он добавляет маркеры к y2, что я не хочу.Как я могу это исправить?

plot_ly(data, x = ~x, y = ~y1, name = 'symbol only', type = 'scatter', mode = 'markers',
             symbol = 8) %>%
  add_trace(y = ~y2, name = 'line only (why markers added?)', mode = 'lines',
             line = list(shape = 'spline', color = 'rgb(200, 12, 46)', width = 2))

1 Ответ

0 голосов
/ 31 декабря 2018

Вы можете сначала создать пустой объект Plotly / объект Plotly, используя только ваши значения x

plot_ly(data, x = ~x) %>%

, а затем добавить каждую трассу отдельно.

symbol в add_traceиспользуется для указания символа source , тогда как symbols хранит фактические символы.В вашем случае вам нужно будет передать symbol тип в marker, то есть marker=list(symbol = 8).

library(plotly)

y1 <- rnorm(100, mean = 5)
y2 <- rnorm(100, mean = -5)
x <- c(1:100)

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


plot_ly(data, x = ~x) %>%
  add_trace(y = ~y1, name = 'symbol only', type = 'scatter', mode = 'markers', marker=list(symbol = 8)) %>%
  add_trace(y = ~y2, name = 'line only', type='scatter', mode = 'lines',
            line = list(shape = 'spline', color = 'rgb(200, 12, 46)', width = 2))

enter image description here

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