2015-03-22 11 views
3

Предположим, что (x (t), y (t)) имеет полярные координаты (√t, 2πt). График (x (t), y (t)) для t∈ [0,10].Как построить полярные координаты в R?

В R нет правильной функции для построения с полярными координатами. Я пробовал нормальный график, давая, x = √t & y = 2πt. Но полученный график не был таким, как ожидалось.

У меня вопрос: «Введение в научное программирование и моделирование с использованием r», и книга говорит, что сюжет должен быть спиральным.

+0

См. Http://docs.ggplot2.org/current/coord_polar.html –

+0

Тег для «параметрических уравнений» был самым близким для математической концепции, что это иллюстрирует. –

ответ

6

Сделать последовательность:

t <- seq(0,10, len=100) # the parametric index 
# Then convert (sqrt(t), 2*pi*t) to rectilinear coordinates 
x = sqrt(t)* cos(2*pi*t) 
y = sqrt(t)* sin(2*pi*t) 
png("plot1.png");plot(x,y);dev.off() 

enter image description here

Это не отображает последовательный характер, поэтому добавить линии, соединяющие соседние точки в последовательности:

png("plot2.png");plot(x,y, type="b");dev.off() 

enter image description here

+0

Первый элемент обычно обозначается как «r» в полярных координатах, т. Е. Радиус, а второй элемент обычно обозначается «theta», угол в радианах от горизонтального вектора, идущего вправо. Обратите внимание, что расстояние между последовательными циклами спирали уменьшается. Это связано с тем, что функция sqrt применяется к радиальному размеру. Вы только что построили (t, 2 * pi * t), пространство останется постоянным. (больше похоже на паутину). Книга на самом деле не правильна о том, что у R нет полярных сюжетов. У пакета 'plotrix' есть 'polar.plot', а пакет 'ggplot2' имеет' coord_polar' –

1

Как уже упоминалось в предыдущем комм , R может изображать полярные координаты. Платформа пакета имеет функцию polar.plot, которая делает это. Полярные координаты определяются длиной и углом. Эта функция может принимать последовательность длин и последовательность углов для построения с полярными координатами. Например, чтобы сделать одну спираль:

library(plotrix) 
plt.lns <- seq(1, 100, length=500) 
angles <- seq(0, 5*360, length=500)%%360 
polar.plot(plt.lns, polar.pos=angles, labels="", rp.type = "polygon") 
0

Опцион стоит попробовать, это Plotly пакет.

library(plotly) 

p <- plot_ly(plotly::mic, r = ~r, t = ~t, color = ~nms, alpha = 0.5, type = "scatter") 

layout(p, title = "Mic Patterns", orientation = -90) 

Примечание: Если вы используете RStudio, графики будут отображаться на вкладке Viewer.