дать разные имена имен в точечной диаграмме R? - PullRequest
0 голосов
/ 07 мая 2018

У меня есть такие:

 x=c(2,1,5,2)  ; y=c(6,11,7,3)
 x1=c(7,6,7,3)  ; y1=c(3,9,4,3)
 names(y1) = c("B", "C","A","D");  names(x1) = c("A", "B","C","D")
 names(y) = c("C", "B","A","D");names(x) = c("D", "A","B","D")
 plot(x1,y1,col="green")

Проблема здесь в том, что он берет первое значение x1 (7) и первое значение y1 (3) и строит их. Что означает «А» и «В». Я хотел бы, чтобы соответствие A от x1 (7) было построено с A от y1 (4).

Также я хочу указать разные буквы для каждой буквы и нарисовать легенду (на графике все точки (круги)).

Есть что-нибудь по этому поводу?

1 Ответ

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

Я бы рекомендовал хранить ваши данные во фреймах данных, а не в отдельных векторах. В этом случае использование фреймов данных упрощает merge ваши данные x и y, чтобы они выстраивались по имени:

dx = data.frame(name = names(x1), x1 = x1)
dy = data.frame(name = names(y1), y1 = y1)
d = merge(dx, dy)
d
#   name x1 y1
# 1    A  7  4
# 2    B  6  3
# 3    C  7  9
# 4    D  3  3

Тогда построение графиков работает довольно легко, снова используя фрейм данных:

with(d, plot(x1,y1,col="green", pch = as.integer(name)))

enter image description here

Я оставлю добавление легенды к вам - просто найдите «как добавить легенду к сюжету в R» или посмотрите ?legend.

Как примечание, ggplot2 очень популярен для построения графиков. Он автоматически добавляет легенды, например:

library(ggplot2)
ggplot(d, aes(x = x1, y = y1, shape = name)) +
    geom_point(color = "green") +
    theme_bw()

enter image description here

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