Построение как Excel - PullRequest
0 голосов
/ 26 мая 2018

У меня был такой вектор:

x= c(0.542949849, 0.242292905, 0.163459552, 0.069668097, 0.042969073, 0.035829825)

и я хочу построить (x[i], x[i+1]).С помощью Excel я получил это: enter image description here

Как я могу получить эту графику в R?Я попробовал это:

for(i in 1:5){
  plot(x[i], x[i+1])
  par(new = TRUE)
}

но это не дает ожидаемый результат

Ответы [ 3 ]

0 голосов
/ 27 мая 2018

Вы можете получить то, что вы хотите, но вам нужно добавить несколько промежуточных шагов.

Вам нужно ввести квалификатор, чтобы массив был числовым.Это эквивалентно тому, чтобы заставить массив быть массивом значений с плавающей запятой.В противном случае все, что вы получите, это целочисленные значения в вашем массиве.

Вам необходимо переопределить подкомпоненты x для двух новых векторов.Вектор 'a' имеет индекс элементов от 1 до 5 массива x.Появляется на оси х.Вектор 'b' имеет индекс элементов от 2 до 6 массива x.Появляется на оси Y.Первые элементы в векторах a и b индексной позиции 1 эквивалентны x [i], x [i + 1], где i равно 1.

Вам необходимо связать 2 вектора вместе и затем построить результат.

x <- as.numeric(c(0.542949849, 0.242292905, 0.163459552, 0.069668097, 0.042969073, 0.035829825))

a <- x[1:5]
b <- x[2:6]

c <- cbind(a,b)

plot(c)

и график результатов выглядит следующим образом

result

0 голосов
/ 27 мая 2018

Попробуйте это:

plot(embed(rev(x), 2))

или

plot(embed(x, 2)[, 2:1])
0 голосов
/ 26 мая 2018

Вот два решения.

Первый использует только базу R.

x <- c(0.542949849, 0.242292905, 0.163459552, 0.069668097, 0.042969073, 0.035829825)

plot(range(x), range(x), type = "n")
for(i in seq_along(x)[-length(x)]){
    points(x[i], x[i+1])
}

Второй использует пакет tsDyn.

tsDyn::autopairs(x, type = "points")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...