Отключить сортировку по оси X в линейном графике - PullRequest
1 голос
/ 19 сентября 2019

У меня есть следующие простые data.frame:

x <- data.frame(x = c(1, 3, 5, 2, 4, runif(10)),
                y = c(1, 2, 3, 4, 5, runif(10)))

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

plot_ly(data = x) %>%
  add_markers(
    x = ~x,
    y = ~y
  ) %>%
  add_lines(
    x = ~x[1:5],
    y = ~y[1:5]
  )

Однако полученный линейный график отсортирован вдоль оси x, а я хочу, чтобы линия следовала порядку, найденному в data.frame (показан красным ниже).

enter image description here

Есть ли способ сделать это?Я нашел похожие вопросы по SO, но все они имеют дело с категориальными значениями.

Я, очевидно, мог бы использовать пути, но, насколько я понимаю, они существуют только в виде фигур внутри layout().Я надеюсь на что-то похожее на след: реагирует на действия при наведении, появляется (и может быть скрыто) в легенде и т. Д.

1 Ответ

2 голосов
/ 19 сентября 2019

Я только что нашел решение, используя add_paths вместо add_lines.

plot_ly(data = x) %>%
  add_markers(
    x = ~x,
    y = ~y
  ) %>%
  add_paths(
    x = ~x[1:5],
    y = ~y[1:5]
  )

New plot

Надеюсь, это решит вашу проблему.

...