2015-03-18 8 views
3

У меня есть три группы, каждая из которых содержит пару баррелей. Я хотел бы добавить пространство между каждой группой, так что есть какое-то различие. Однако, когда я манипулирую полями с помощью параметра mar в par(), он влияет на ширину штрихового шрифта.Какова разница между графиками?

par(mfrow=c(1,6)) 
#pair1 
par(mar=c(5,2,5,1), xpd=TRUE) 
barplot(t(cbind(1, 5, 6)), col=c("red", "orange", "yellow")) 
par(mar=c(5,2,5,2), xpd=TRUE) 
barplot(t(cbind(3, 3, 2)), col=c("blue", "green", "purple")) 

#pair2 
par(mar=c(5,4,5,1), xpd=TRUE) 
barplot(t(cbind(2, 2.5, 5)), col=c("red", "orange", "yellow")) 
par(mar=c(5,2,5,2), xpd=TRUE) 
barplot(t(cbind(5, 1, 3)), col=c("blue", "green", "purple")) 

#pair2 
par(mar=c(5,4,5,1), xpd=TRUE) 
barplot(t(cbind(4, 2, 1)), col=c("red", "orange", "yellow")) 
par(mar=c(5,2,5,2), xpd=TRUE) 
barplot(t(cbind(6, 2, 1)), col=c("blue", "green", "purple")) 

Как добавить дополнительное пространство между 3-мя графиками, сохраняя при этом ширину штрихов? Цените любые советы.

ответ

3

Я предложил бы использовать layout функцию вместо par(mfrow=c(1,6)) и указать пространство между 3 пары в качестве дополнительных «пустых» планировавших регионов.

Вот простой пример:

tmpmat <- rbind(c(1,2,0,3,4,0,5,6)) 
layout(tmpmat, widths=c(3,3,1,3,3,1,3,3)) 

barplot(rbind(1,5,6)) 
barplot(rbind(3,3,2)) 

barplot(rbind(2,2.5,5)) 
barplot(rbind(5,1,3)) 

barplot(rbind(4,2,1)) 
barplot(rbind(6,2,1)) 

Другая возможность состоит в том, чтобы объединить все векторы в матрицу и создать 1 barplot, а затем использовать space аргумент для контроля пространства между сложенной решеткой (я считаю, что это то, на что должен был ответить ответ ПедроБраза, который поместит все бары в одну и ту же вертикальную шкалу, в то время как ваш и мой пример даст каждому барплоту собственную вертикальную шкалу.

+0

Цените преимущество. – Stephen

1

есть аргумент space.

см https://stat.ethz.ch/R-manual/R-patched/library/graphics/html/barplot.html

описание:

the amount of space (as a fraction of the average bar width) left before each bar. May be given as a single number or one number per bar. If height is a matrix and beside is TRUE, space may be specified by two numbers, where the first is the space between bars in the same group, and the second the space between the groups. If not given explicitly, it defaults to c(0,1) if height is a matrix and beside is TRUE, and to 0.2 otherwise. 
Смежные вопросы