xy заговор между строками и числами - PullRequest
2 голосов
/ 02 ноября 2011

Я потратил много времени на его поиск, но не смог найти.Не взорвать меня, если это основной вопрос:)

Я хочу создать точечный график с векторами ниже

> x
[1] "a" "b" "c" "d"
> y
[1] 5 6 3 4

Я использовал xyplot, но он дает ошибки ниже

> xyplot(y~x)
Hit <Return> to see next plot:
Warning messages:
1: In order(as.numeric(x)) : NAs introduced by coercion
2: In diff(as.numeric(x[ord])) : NAs introduced by coercion
3: In function (x, y, type = "p", groups = NULL, pch = if (is.null(groups)) plot.symbol$pch else superpose.symbol$pch,  :
  NAs introduced by coercion

1 Ответ

10 голосов
/ 02 ноября 2011

Есть много способов сделать это. Вот одно предложение от каждой из основных графических библиотек, то есть base graphics, lattice и ggplot2:


В базовой графике вы можете построить factor(x) против y:

plot(factor(x), y)

enter image description here


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

library(lattice)
dotplot(y~x)

enter image description here


А с ggplot2 вы можете использовать qplot или ggplot (после преобразования данных в data.frame):

library(ggplot2)
qplot(x, y)
ggplot(data.frame(x, y), aes(x,y)) + geom_point()

enter image description here

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