2014-10-24 2 views
0

Я хочу сравнить наблюдаемые значения с установленными. Для этого я решил использовать сюжет в R. То, что я хочу сделать, это построить X vs Y и X vs. Y., установленный на том же сюжете. Я написал код, но он неполный. Мой сюжет должен выглядеть следующим образом. На участке, круги и кресты представляют собой наблюдаемые и подобранные значения соответственноСочетание двух графиков в R

enter image description here

set.seed(1) 
x <- runif(8,0,1) 
y <- runif(8,0,1) 
y.fitted <- runif(8,0,1) 
plot(x,y,pch=1) 
plot(x,y.fitted,pch=5) 

ответ

4

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

plot(x, y, pch = 1) 
points(x, y.fitted, pch = 4) 
+1

Спасибо Sven. Это именно то, что я был после –

1

рабочий участок второй раз создаст новый. Вы можете использовать points

set.seed(1) 
x <- runif(8,0,1) 
y <- runif(8,0,1) 
y.fitted <- runif(8,0,1) 
plot(x,y,pch=1) 
points(x,y.fitted,pch=5) 
+0

В чем этот ответ отличается от другого? – agstudy

+0

Это не так, я опубликовал сразу после первого ответа. Должно быть, было совсем близко, так как я сделал обновление перед ответом. –

1

решение с ggplot2 дает лучший и аккуратный внешний вид графика:

library(ggplot2) 

df = data.frame(x=runif(8,0,1),y=runif(8,0,1),y.fitted=runif(8,0,1)) 
df = melt(df, id=c('x')) 

ggplot() + geom_point(aes(x=x,y=value, shape=variable, colour=variable), df) 
+0

Если есть определенная причина для размещения данных и 'aes' в слое' geom_points', я думаю, что лучше использовать его в вызове 'ggplot', тем самым делая его доступным для любого другого уровня, который вы, возможно, захотите Добавить. В этом случае вы получаете тот же результат. – Backlin

+0

Думаю, для 'melt' нужна библиотека, reshape2? –

+0

Изменить форму и изменить –

Смежные вопросы