Вопрос по plotrix, r, plot – Рисование кругов в R

2

Я использую пакет plotrix для рисования кругов.

И я не понимаю, что не так с моим кодом ... :-(

У меня есть три очка. Первый пункт(1,1) должен быть центром круга. Следующие два пункта(1,4) а также(4,1) имеют одинаковое расстояние / радиус до центра. Таким образом, круг на графике должен пройти через эти точки, верно?

И я не знаю, почему круг выглядит неправильно. Есть ли объяснение?

  p1 <- c(1,1)
  p2 <- c(4,1)
  p3 <- c(1,4)
  r <- sqrt(sum((p1-p2)^2))

  plot(x=c(p1[1], p2[1], p3[1]),
       y=c(p1[2], p2[2], p3[2]), 
       ylim=c(-5,5), xlim=c(-5,5))
  draw.circle(x=p1[1], y=p1[2], radius=(r))
  abline(v=-5:5, col="#0000FF66")
  abline(h=-5:5, col="#0000FF66")

Посмотрите на произведенную продукциюВот

установить соотношение сторонasp в?plot baptiste

Ваш Ответ

1   ответ
4

plot(...,asp=1), Это будет работать только в том случае, если ваши диапазоны x и y оказываются одинаковыми (потому что он устанавливаетphysical соотношение сторон вашего участка к 1). В противном случае, вы, вероятно, хотите использоватьeqscplot функция отMASS пакет. Подобная проблема возникает всякий раз, когда вы пытаетесь сделать осторожные графики геометрических объектов, например,Рисование непересекающихся кругов

Этот сюжет производится путем заменыMASS::eqscplot заplot в вашем коде выше:

enter image description here

Обратите внимание, что в зависимости от деталей того, что R думает о конфигурации вашего монитора и т. Д., Круг может выглядеть немного сжатым (даже если он проходит через точки), когда вы строите график в графическом окне R - это было для меня - но должен выглядеть хорошо в графическом выводе.

Спасибо! Функция MASS eqscplot близка к тому, что мне нужно. Тем не менее, было бы неплохо определить собственные xlim и ylim. Drey
Сложность состоит в том, что вы обычно манипулируете (1) размерами графического устройства (обычно настраиваемые пользователем, но не адаптивные изнутри графической структуры R); (2) размеры области рисунка в области черчения (зависит от полей и размеров заголовков, аннотаций и т. Д.); (3) пользовательские пределы x и y. Осторожно, вы можете получить их так, как вы хотите, но это немного сложно, чтобы все это настроить автоматически [gt] ...

Похожие вопросы