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

Рисование непересекающихся кругов

Я пытаюсь построить две непересекающиеся трогательные круги, но я думаю, что мне не хватает чего-то довольно элементарного...

jpeg(file="test.jpg")
diam <- sqrt (2)
plot (c(-1,1), c(1,-1), xlim=c(-5,5), ylim=c(-5,5))

symbols (c(-1,1), c(1,-1), circles=c(diam,diam), add=TRUE, inches=FALSE)
dev.off()

Может кто-нибудь объяснить мне, почему эти круги перекрываются?

alt text

4b9b3361

Ответ 1

Задайте соотношение сторон через asp:

diam <- sqrt (2)
plot (c(-1,1), c(1,-1), xlim=c(-3,3), ylim=c(-3,3), asp=1)
symbols (c(-1,1), c(1,-1), circles=c(diam,diam), add=TRUE, inches=FALSE)

Обновлено, чтобы добавить Гевина Симпсона, отличную информацию о комментариях и чатах. Мой ответ может быть правильным, но Gavin дает очень полезные причины, по которым работает asp=1 и почему это не поведение по умолчанию. Огромное спасибо ему.

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

Причина asp = 1 - это не default - это то, что asp = 1 не делает смысл для данных, которые не разделяют общая единица измерения, такая как высота против веса. Почему нужно менять 1 м в высоту должны быть представлены как изменение веса 1 кг?

и

В результате расстояние вдоль оси х не имеет отношения к тем, кто находится на y. Таким образом, то, что трансформация реальных кругов - они действительно кружки, только что переведенные потому что система координат вы построение их в не подходит.

Для иллюстрации точек Gavin можно было бы нарисовать круги на устройстве по умолчанию (не на устройстве jpeg), а затем изменить размер устройства. Вы можете заставить круги выглядеть все странно.