Подтвердить что ты не робот

Создание квадратных осей в R

Как я могу использовать R, чтобы оси всегда были квадратными в диаграммах рассеяния? например, в:

> plot(iris)

или

> plot(iris$Petal.Width, iris$Petal.Length)

Я хотел бы, чтобы оси были квадратными, т.е. одинаковые метки длины и метки для осей x и y.

Текущий предложенный ответ не работает: вызов

plot(iris$Petal.Width, iris$Petal.Length, xlim=c(0,10), ylim=c(0,10), asp=1)

Формирует:

enter image description here

который не является квадратным, и не имеет одинаковых галочек и тиков. Промежутки между метками x tick должны быть одинаковыми, а график должен быть квадратным, а не прямоугольным.

4b9b3361

Ответ 1

Вам нужно также установить pty="s" в графических параметрах, чтобы сделать квадрат области сюжета (независимо от размера и ограничений устройства):

par(pty="s")
plot(iris$Petal.Width, iris$Petal.Length, asp=1)
lines(2+c(0,1,1,0,0),3+c(0,0,1,1,0)) # confirm square visually

talllong

Ответ 2

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

Таким образом, размер графика контролируется размером области вывода, то есть окном графика, файлом изображения или чем-то еще. Используя Rstudio, вы можете использовать встроенный графический интерфейс для указания размера графика. Если вы настаиваете на использовании базовой консоли R, вам необходимо вручную выполнить экспорт. Сначала откройте файл:

png("image.png", width=600, height=600)

Это откроет файл изображения в рабочем каталоге с равными пропорциями. Теперь сюжет:

x = iris$Petal.Width
y = iris$Petal.Length
all = c(x,y)
range = c(min(all), max(all))
plot(x, y, xlim=range, ylim=range)

И закройте файл:

dev.off()

Результат:

enter image description here