Как я могу расположить ось X, отсортированную по Y, на моем графике? - PullRequest
0 голосов
/ 08 апреля 2019

Мне нужно нанести на график X (используемое приложение («facebook», «твитер» ...)) и время, потраченное на него по оси Y , но Мне нужно упорядочить ось X по ось Y. Как я мог это сделать?

Я пробовал следующее:

data_df <- Original_dataFrame%>%                                           

dplyr::select(Applications,Time_Spend) %>%
dplyr::group_by(Applications,Time_Spend)%>%
arrange(Applications,Time_Spend)


plot_ly(data_df, y=~Time_Spend,x = ~Applications, type = 'scatter', mode = 'lines')

Ответы [ 2 ]

0 голосов
/ 08 апреля 2019

Если вы хотите, чтобы график отображался в сюжете.

  1. Поместите ваши данные в таблицу или в фрейм data.frame
  2. график с использованием ggplot (порядок x на reorder())
  3. рендеринг с использованием графика ggplotly для преобразования объекта ggplot

код

library(tidyverse)
library(plotly)
set.seed(123)
x <- letters[1:10]
y <- sample(101:200, 10)

df <-tibble(x = x, y = y)


g<- ggplot(df, aes(x=reorder(x, y , mean), y =y )) + geom_point()
ggplotly(g)
0 голосов
/ 08 апреля 2019

Вот подход с графикой и синтаксисом базового R (здесь не используется magrittr piping или plot_ly):

Предположим, у вас есть приложения x и time_spend y.

Сначала создайте несколькопример данных:

set.seed(123)
x <- letters[1:10]
y <- sample(101:200, 10)

#   x   y
#1  a 129
#2  b 179
#3  c 141
#4  d 186
#5  e 191
#6  f 105
#7  g 150
#8  h 183
#9  i 151
#10 j 142

Затем выведите график time_spend (y) в порядке возрастания.Я сделаю это с одинаково горизонтально расположенными точками, указав аргументу x x=seq_along(y).Я также опущу маркировку оси x с помощью xaxt="n":

plot(x=seq_along(y), y=sort(y), xaxt="n", xlab="x", ylab="y")

Теперь я добавлю метку вдоль оси x, чтобы метки соответствовали нанесенным данным:

axis(side=1, at=seq_along(y), labels=x[order(y)])

plot

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