2013-08-15 2 views
1

Я пытаюсь построить (заполненную) карту контура с соотношением сторон = 1, но я не могу получить правильную форму окна сюжета/остался с областями в окне графика, которые являются белыми, потому что окно графика (или) всегда остается квадратом. Пожалуйста, смотрите пример нижеR: как установить размер контура с пользовательским соотношением сторон?

x <- 10*1:nrow(volcano) 
y <- 10*1:ncol(volcano) 
filled.contour (x, y, volcano, asp = 1) 

результатов в сюжет, который выглядит следующим образом: filled.contour

как избавиться от белых областей в участке коробки/окна, сохраняя при этом соотношение сторон? Я предполагаю, что мне нужно установить размер окна графика где-нибудь, но не могу узнать, как; кажется, что графические настройки параметров (с помощью пар) перезаписываются filled.contour (или установив жерех = 1)

+0

С 'image' вместо' filled.contour', вы можете удалите поле с 'axes = FALSE' и добавьте его самостоятельно, а не с' box() ', но с' rect (min (x), min (y), max (x), max (y)) '. Так как 'fill.contour' использует' layout' и 'par', это затрудняет восстановление правильных координат. –

+0

вы можете установить frame.plot в false и сдвинуть оси. проверьте это http://r.789695.n4.nabble.com/Contour-Plot-Aspect-Ratio-td869340.html – user2510479

+0

Благодаря обоим. Но нет ли более элегантного способа? Использование решения 1 означает потерю вашей легенды, а rect() не заменяет оси (тики, метки и т. Д.). С решением 2 вы теряете текст легенды, а легенда все еще находится в исходном размере (высоте) и выше фактического графика. – Lukas

ответ

0

Попробуйте

x <- 10*1:nrow(volcano) 
    y <- 10*1:ncol(volcano) 
    filled.contour(x, y, volcano,asp=1, frame.plot=F, 
    plot.axes = { axis(1, pretty(x,min=0), line=-4) 
       axis(2, seq(0, 600, by = 100)) }) 
Смежные вопросы