2015-11-02 2 views
2

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

Вот код, который практически делает то, что я хочу:

ability <- rnorm(50) 
parameters <- data.frame(Item=paste("Q",1:10),Difficulty=rnorm(10)) 
xrange<- range(c(ability,parameters$Difficulty)) 

print(histogram(ability,endpoints=xrange,xlim=xrange*1.04), 
     position=c(0,.68,1,1),more=TRUE,newpage=TRUE) 
print(dotplot(Item~Difficulty,parameters,xlim=xrange*1.04), 
     position=c(0,0,1,.7)) 

Вот вывод этой функции histogram+dotplot

Проблема заключается в том, что клещ знаки в этих двух функций не совсем выстраивают , Два графика выделяют разное количество места для тиков слева, а гистограмма имеет галочки справа, а точка-точка - нет. Я не могу понять, как это изменить (я подозреваю, что он похоронен где-то в аргументе весов).

Кроме того, использование печати и позиции немного глупые, есть ли более общий способ сделать это.

Заранее спасибо.

+0

Если вы хотите использовать 'ggplot' [вот несколько примеров] (http://stackoverflow.com/questions/8545035/scatterplot-with-marginal-histograms-in-ggplot2). – chappers

ответ

0

я понял, как сделать это в графике база R:

layout(matrix(c(1,2),2,1,byrow=TRUE),heights=c(1,3)) 
par(mar = c(3.1, 4.1, 3.1, 2.1)) 
hist(ability,xlim=xrange*1.2,xlab="",col="cyan") 
par(mar = c(3.1, 4.1, 0.1, 2.1)) 
dotchart(parameters$Difficulty,parameters$Item,xlim=xrange*1.2,main="") 

Это произвело то, что мне было нужно.