xy График на основе двухколоночной таблицы - PullRequest
0 голосов
/ 19 июня 2020

Я новичок в R, и я пытаюсь преобразовать таблицу с двумя столбцами в xy-Plot.

Вот мой .csv:

x [cm];y [cm]
0.5;0
2.6;9
0.5;1
0.6;2
0.7;3
0.8;4
1;5
1.2;6
1.5;7
1.9;8

Теперь: plot(data$`x [cm]`,data$`y [cm]`, type="b").

Однако я получаю такой результат:

enter image description here

Я не совсем уверен, почему (0,5 / г) и ( 2.6 / y) соединены ..

Мне нужна простая линия, соединяющая все точки, поскольку они представляют электрические c силовые линии. Есть простой способ сделать это?

Ответы [ 3 ]

3 голосов
/ 19 июня 2020

Сначала отсортируйте данные:

data <- data[order(data[,1]),]
plot(data[,1], data[,2], type="b", xlab="x [cm]", ylab="y [cm]")

enter image description here

0 голосов
/ 19 июня 2020

Точки связаны таким образом, потому что соединение создается на основе их порядка в матрице.

m <- matrix(c(
  0.5, 0,
  0.5, 1,
  0.6, 2,
  0.7, 3,
  0.8, 4,
  1, 5,
  1.2, 6,
  1.5, 7,
  1.9, 8,
  2.6, 9), ncol = 2, byrow = TRUE)

colnames(m) <- c("x", "y")

plot(m, type = "b")

Простая перегруппировка матрицы решает вашу проблему.

enter image description here

0 голосов
/ 19 июня 2020

Вы можете использовать

library(ggplot2)
ggplot(data, aes(x=`x [cm]`, y=`y [cm]`)) + geom_point() + geom_line()

enter image description here

Или используя базовый график R

plot(data$`x [cm]`, data$`y [cm]`, 
 xlim=range(data$`x [cm]`), ylim=range(data$`y [cm]`), 
 xlab="x [cm]", ylab="y [cm]")

lines(data$`x [cm]`[order(data$`x [cm]`)], data$`y [cm]`[order(data$`y [cm]`)], 
      xlim=range(data$`x [cm]`), ylim=range(data$`y [cm]`))

enter image description here

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