2016-11-09 3 views
0

Я хотел бы построить два графика в одной и той же области графика с горизонтальными линиями сетки. Каждая сторона линий сетки должна давать значение для одного графика или другого. Не должно быть оси y.R: две оси и линии сетки

Функция grid() позволяет мне просто задать количество ящиков, используя аргумент ny=. Как получить соответствующие метки к линиям сетки? Обычно я использую axis(..., lwd=0), чтобы получить ярлыки. Однако для этой функции требуются метки с at=c() и не содержит аргумент ny=. Есть ли способ автоматически установить местоположения из числа ящиков?


Основываясь на подсказке Мифа ниже, это должно решить проблему.

plot(1:10, axes=FALSE, ylim=c(0,10), ylab="") 
par(yaxp=c(0, 10, 5)) 
axis(2, lwd=0, col.axis="gray") 
par(new=TRUE) 
plot(60:50, axes=FALSE, ylim=c(50,60), ylab="") 
par(yaxp=c(50, 60, 5)) 
axis(4, lwd=0, col.axis="gray") 
grid(NA, NULL) 

ответ

1

grid() получает свои места для сетки из axTicks(), что, в свою очередь, использует цифры от par("yaxp"). Если вы измените этот параметр (а не явно передаете его в сетку), результат будет применяться как к рисованной сетке, так и по оси. Например:

plot(1:10, axes=FALSE) 
axis(2) #Default 4 sections between ticks 
par(yaxp=c(par("yaxp")[1:2], 7)) #Lets have seven instead 
axis(4) 
grid() #Grid now matches with right rather than left 

Очевидно, аналогичные работы для оси x.

+0

Итак, моя проблема может быть решена следующим образом: – bumblebee

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