Построить наблюдения в одной точке оси X, связанной с переменной id - PullRequest
0 голосов
/ 07 июня 2018

Мне нужна помощь.Это представление моей базы данных:

482 940 914  1  
507 824 1042 2   
514 730 1450 3  
477 595 913  4  

Моя цель - построить в одной и той же точке оси X каждую строку.
Пример:
in 1 (=x) Я хочу построить 482, 940 и 914
в 2 (=x) Я хочу построить 507, 824 и 1042.

Таким образом, три точки по вертикали для каждой точки оси x.

1 Ответ

0 голосов
/ 07 июня 2018

это хорошая идея, чтобы поделиться данными воспроизводимым способом - я использую readClipboard для чтения скопированного вектора в R. В любом случае, вот быстрый ответ:

x <- as.numeric(unlist(strsplit(readClipboard(), " ")))

Это делаетэто в числовой вектор.Теперь нам нужно разделиться на группы на основе предоставленного вами описания.Я использую matrix для достижения этой цели, а затем преобразую в data.frame для построения графика, используя ggplot2:

m <- matrix(x, ncol = 4, byrow = T)
> m
     [,1] [,2] [,3] [,4]
[1,]  482  940  914    1
[2,]  507  824 1042    2
[3,]  514  730 1450    3
[4,]  477  595  913    4

df <- as.data.frame(m)
# Assign names to the data.frame
names(df) <- letters[1:4]

> df
    a   b    c d
1 482 940  914 1
2 507 824 1042 2
3 514 730 1450 3
4 477 595  913 4

Чтобы получить график:

library(ggplot2)
ggplot(df, aes(x = d)) + 
    geom_point(aes(y = a), color = "red") + 
    geom_point(aes(y = b), color = "green")  + 
    geom_point(aes(y = c), color = "blue")

OUTPUT

enter image description here

Вы можете поиграть с ggtitle и xlab и т. Д., Чтобы изменить метки сюжета и добавить легенды.

Надеюсь, это полезно!

...