2012-03-14 2 views
5

This вопрос объясняет, как добавлять сетки по определенным точкам для участка решетки (т. Е. Эквивалент двух abline() для нормального участка). Моя проблема в том, что когда я пытаюсь добавить регулярную сетку (эквивалент вызова сетки() для нормального сюжета) ... содержимое графиков ... исчезает. Вот пример:как добавить общую решетку к решетке xy.plot

B<-cbind(rnorm(100),rnorm(100), floor(runif(100,1,7)), floor(runif(100,1,3)), 
      floor(runif(100,1,4))) 
colnames(B)<-c("yval","xval","gval","p","cr") 
B<-as.data.frame(B) 
xyplot(B$yval~B$xval|B$p*B$cr,group=B$gval,main="Scatterplots by Cylinders and Gears", 
      ylab="Miles per Gallon", xlab="Car Weight",type="l",lwd=5, 
      panel=function(x,y){panel.grid()}) 

если вы удалите последний вариант (т.е. панель = функция (х, у) {panel.grid()}), то я вижу в данных-линии, но не сетка() , Есть ли способ иметь как сетку и данные-линию

заранее спасибо,

ответ

5

Попробуйте это:

xyplot(yval ~ xval | p*cr, data=B, group=gval, type=c("l","g"), lwd=5, 
     main="Scatterplots by Cylinders and Gears", 
     ylab="Miles per Gallon", xlab="Car Weight") 

Я упростил немного синтаксиса, потому что вы можете использовать имена переменных из вас data.frame, если вы аргумент data=. Ключ должен использовать type=c("l","g"), что означает линии + сетки, и эквивалентна функции панели, которая выглядит бы как

panel=function(...) { 
    panel.xyplot(...) 
    panel.grid() 
} 

В вашем случае, это происходит потому, что вы забыли добавить panel.xyplot(), что никакие точки или линии не были нарисован. Если вы хотите другую сетку, вы можете использовать приведенный выше код и настроить вызов на panel.grid().

+0

спасибо! Знаете ли вы, как я могу изменить цвета сетки? – user189035

+0

@ user189035 См. 'Help (panel.grid)': есть аргумент 'col ='. Вам нужно будет использовать настраиваемую функцию панели, такую ​​как выше, потому что 'col.line =' не может передаваться непосредственно в 'xyplot', не мешая аргументу' group = '. Вероятно, вы получите что-то вроде 'panel.grid (h = -1, v = -1, col.line =" red ")'. – chl

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