2016-08-19 3 views
0

Я хочу поместить два графика на одну и ту же страницу pdf. Первый участок необходимо соотношение сторон 1.Размеры монтажной оси в графике R

x <- 1:5 
y <- 1:5 
z <- 1:5 
t <- 1:5 
pdf("test.pdf") 
par(mfrow=c(2,1)) 
plot(x,y,asp=1) 
plot(z,t) 
dev.off() 

я в итоге следующее: enter image description here

Допустим, отрицательные значения не имеют никакого значения в контексте первого участка. Как я могу сделать, чтобы получить квадратный график вместо этого горизонтально распространенного прямоугольника?

Я попытался указать xlim=c(0, 6) и ylim=c(0, 6), но участок по-прежнему представляет собой длинный прямоугольник с пустыми местами с обеих сторон точек. Кроме того, я могу заранее не знать, что такое самые высокие значения.

В идеале, я хотел бы иметь возможность сказать: для первого графика, начните оси в 0, используйте одну и ту же длину для обеих осей, установите первый график в первой половине страницы формата А4, а второй сюжет во второй половине той же страницы.

Как я могу это сделать?

ответ

1

такт, чтобы заставить квадратные области утилита печати является добавлением PTy = «S» функции par :

pdf("temp.pdf", height=11, width=8.5) 
par(mfrow=c(2,1), pty="s") 
plot(x,y,asp=1, xlim=c(0, 6)) 
plot(z,t, xlim=c(0, 6)) 
dev.off() 

из файла справки, ?par, то псевдотерминал аргумент принимает

Символ, определяющий тип участка участка, который будет использоваться; «s» генерирует квадратную область построения графика, а «m» генерирует максимальную область построения графика.

+0

Использование 'pty =" s "' действительно дает мне квадратные участки, но по какой-то причине на странице остается много полей (используется только одна треть ширины страницы). Должна ли заговор автоматически использовать больше места? Есть ли способ установить размер этой оси? – bli

+2

@bli try 'pdf (" temp.pdf ", height = 11, width = 11/2)' или что-то – rawr

+0

@rawr Спасибо, это было полезно. – bli

1

Может быть, вы можете изменить ширину и высоту Pdf как это:

pdf("test.pdf",width=2.height=5) 

, а затем

par(mfrow=c(2,1)) 
plot(x,y)#remove asp=1 
plot(z,t) 
dev.off() 
+0

Почему удалите 'asp = 1'? Я хочу, чтобы x и y представлялись в одном масштабе. – bli

+0

Извините, я не знаю, почему это так. Но как и в вашем заговоре, если использовать asp = 1, x ограничивает от -4 до 10, а затем удаляет его, пределы x от 1 до 5. Также вы можете использовать xlim = c (1,5) –

+0

Возможно, вы можете использовать RStudio, чтобы помочь вам изменить размер графика. Это полезно. –

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