2016-03-25 8 views
-1

Я хочу построить на этом же графике две разные наборы точек: A = [1 2; 3 4] и B = [1 3; 2 4]. Мне нужно сохранить сюжет, поэтому моя идея - использовать myPlot <- qplot, а затем ggsave.Множество наборов данных с ggplot

С таким подходом, как я могу построить несколько наборов данных без получения ошибки formal argument "data" matched by multiple actual arguments?

Вот код, я использую в настоящее время:

yPlot <- qplot(A[,1], A[,2], data = A[1:2], geom="point", 
       B[,1], B[,2], data = B[1:2], geom="point") + xlim(0, 10) 
ggsave(filename="Plot.jpg", plot=myPlot, width = 12, height = 8) 

ответ

0

Вот шаблон для построения два кадра данных на тот же рисунок:

A = data.frame(x = rnorm(10),y=rnorm(10)) 
B = data.frame(x = rnorm(10),y=rnorm(10)) 
ggplot(A,aes(x,y)) +geom_point() +geom_point(data=B,colour='red') + xlim(0, 10) 

или что то же самое:

qplot(x,y,data=A) +geom_point(data=B,colour='red') + xlim(0, 10) 

Если вы хотите рисовать фигуры бок о бок, см. ?par и ищите описания 'mfcol' и 'mfro w '

В дополнение к ggsave, см. ?pdf.

+0

Спасибо за это! Что делать, если A и B имеют разный размер? –

+1

Вы имеете в виду разное количество строк в кадрах данных? Если это так, оба решения должны по-прежнему работать. – Jthorpe

+0

Используете ли вы матрицы или фреймы данных? Если это так, вы, вероятно, захотите принудить их к кадрам данных, используя as.data.frame. Кроме того, ggplot сопоставляет астетику с именами переменных (ggplot рассматривает позицию как астетическую), поэтому мне не нужно было указывать имена x и y на 'geom_point()'. Следовательно, вы захотите иметь data.frames с одинаковыми именами. Если вы используете обычную нотацию (2 строки X 10 столбцов), вы хотите использовать что-то вроде: 'a = as.data.frame (t (A)); имена (a) <- c ('x', 'y') ' – Jthorpe

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