1. 원 그리기
원을 그리는 간단한 R 함수는 없다.
아래는 다각형을 가지고 대략적으로 원을 그리는 방법이다.
> plot.new()
> plot.window(xlim=c(-1.1,1.1), ylim=c(-1.1,1.1), asp=1)
> theta=seq(0,2*pi, length=72) // 180° = π, 2π 즉, 360° 를 72 로 나눈 것이므로 Change of angle = 5°
> x=cos(theta)
> y=sin(theta)
> lines(x,y)
>
위의 그림에서 c = 1 이라고 하면,
좌표 X = (a,b) = (a/1, b/1) = (cosA, sinA) 가 된다.
theta = seq(0,2*pi, length=72) 의 간격대로 해당 값들을 구해보면 아래와 같다.
아래와 같은 72개의 점을 이은 셈이되는 것이다.
|
# |
theta=seq(0,2*pi, length=72) |
cos(theta) |
sin(theta) |
|
0 |
0 |
1.0000 |
0.0000 |
|
1 |
0.087266463 |
0.9962 |
0.0872 |
|
2 |
0.174532925 |
0.9848 |
0.1736 |
|
3 |
0.261799388 |
0.9659 |
0.2588 |
|
4 |
0.34906585 |
0.9397 |
0.3420 |
|
5 |
0.436332313 |
0.9063 |
0.4226 |
|
6 |
0.523598776 |
0.8660 |
0.5000 |
|
7 |
0.610865238 |
0.8192 |
0.5736 |
|
8 |
0.698131701 |
0.7660 |
0.6428 |
|
9 |
0.785398163 |
0.7071 |
0.7071 |
|
10 |
0.872664626 |
0.6428 |
0.7660 |
|
11 |
0.959931089 |
0.5736 |
0.8192 |
|
12 |
1.047197551 |
0.5000 |
0.8660 |
|
13 |
1.134464014 |
0.4226 |
0.9063 |
|
14 |
1.221730476 |
0.3420 |
0.9397 |
|
15 |
1.308996939 |
0.2588 |
0.9659 |
|
16 |
1.396263402 |
0.1736 |
0.9848 |
|
17 |
1.483529864 |
0.0872 |
0.9962 |
|
18 |
1.570796327 |
0.0000 |
1.0000 |
|
19 |
1.658062789 |
-0.0872 |
0.9962 |
|
20 |
1.745329252 |
-0.1736 |
0.9848 |
|
21 |
1.832595715 |
-0.2588 |
0.9659 |
|
22 |
1.919862177 |
-0.3420 |
0.9397 |
|
23 |
2.00712864 |
-0.4226 |
0.9063 |
|
24 |
2.094395102 |
-0.5000 |
0.8660 |
|
25 |
2.181661565 |
-0.5736 |
0.8192 |
|
26 |
2.268928028 |
-0.6428 |
0.7660 |
|
27 |
2.35619449 |
-0.7071 |
0.7071 |
|
28 |
2.443460953 |
-0.7660 |
0.6428 |
|
29 |
2.530727415 |
-0.8192 |
0.5736 |
|
30 |
2.617993878 |
-0.8660 |
0.5000 |
|
31 |
2.705260341 |
-0.9063 |
0.4226 |
|
32 |
2.792526803 |
-0.9397 |
0.3420 |
|
33 |
2.879793266 |
-0.9659 |
0.2588 |
|
34 |
2.967059728 |
-0.9848 |
0.1736 |
|
35 |
3.054326191 |
-0.9962 |
0.0872 |
|
36 |
3.141592654 |
-1.0000 |
0.0000 |
|
37 |
3.228859116 |
-0.9962 |
-0.0872 |
|
38 |
3.316125579 |
-0.9848 |
-0.1736 |
|
39 |
3.403392041 |
-0.9659 |
-0.2588 |
|
40 |
3.490658504 |
-0.9397 |
-0.3420 |
|
41 |
3.577924967 |
-0.9063 |
-0.4226 |
|
42 |
3.665191429 |
-0.8660 |
-0.5000 |
|
43 |
3.752457892 |
-0.8192 |
-0.5736 |
|
44 |
3.839724354 |
-0.7660 |
-0.6428 |
|
45 |
3.926990817 |
-0.7071 |
-0.7071 |
|
46 |
4.01425728 |
-0.6428 |
-0.7660 |
|
47 |
4.101523742 |
-0.5736 |
-0.8192 |
|
48 |
4.188790205 |
-0.5000 |
-0.8660 |
|
49 |
4.276056667 |
-0.4226 |
-0.9063 |
|
50 |
4.36332313 |
-0.3420 |
-0.9397 |
|
51 |
4.450589593 |
-0.2588 |
-0.9659 |
|
52 |
4.537856055 |
-0.1736 |
-0.9848 |
|
53 |
4.625122518 |
-0.0872 |
-0.9962 |
|
54 |
4.71238898 |
0.0000 |
-1.0000 |
|
55 |
4.799655443 |
0.0872 |
-0.9962 |
|
56 |
4.886921906 |
0.1736 |
-0.9848 |
|
57 |
4.974188368 |
0.2588 |
-0.9659 |
|
58 |
5.061454831 |
0.3420 |
-0.9397 |
|
59 |
5.148721293 |
0.4226 |
-0.9063 |
|
60 |
5.235987756 |
0.5000 |
-0.8660 |
|
61 |
5.323254219 |
0.5736 |
-0.8192 |
|
62 |
5.410520681 |
0.6428 |
-0.7660 |
|
63 |
5.497787144 |
0.7071 |
-0.7071 |
|
64 |
5.585053606 |
0.7660 |
-0.6428 |
|
65 |
5.672320069 |
0.8192 |
-0.5736 |
|
66 |
5.759586532 |
0.8660 |
-0.5000 |
|
67 |
5.846852994 |
0.9063 |
-0.4226 |
|
68 |
5.934119457 |
0.9397 |
-0.3420 |
|
69 |
6.021385919 |
0.9659 |
-0.2588 |
|
70 |
6.108652382 |
0.9848 |
-0.1736 |
|
71 |
6.195918845 |
0.9962 |
-0.0872 |
|
72 |
6.283185307 |
1.0000 |
0.0000 |
|
# |
theta=seq(0,2*pi, length=72) |
cos(theta) |
sin(theta) |
|
0 |
0 |
1.0000 |
0.0000 |
|
1 |
0.087266463 |
0.9962 |
0.0872 |
|
2 |
0.174532925 |
0.9848 |
0.1736 |
|
3 |
0.261799388 |
0.9659 |
0.2588 |
|
4 |
0.34906585 |
0.9397 |
0.3420 |
|
5 |
0.436332313 |
0.9063 |
0.4226 |
|
6 |
0.523598776 |
0.8660 |
0.5000 |
|
7 |
0.610865238 |
0.8192 |
0.5736 |
|
8 |
0.698131701 |
0.7660 |
0.6428 |
|
9 |
0.785398163 |
0.7071 |
0.7071 |
|
10 |
0.872664626 |
0.6428 |
0.7660 |
|
11 |
0.959931089 |
0.5736 |
0.8192 |
|
12 |
1.047197551 |
0.5000 |
0.8660 |
|
13 |
1.134464014 |
0.4226 |
0.9063 |
|
14 |
1.221730476 |
0.3420 |
0.9397 |
|
15 |
1.308996939 |
0.2588 |
0.9659 |
|
16 |
1.396263402 |
0.1736 |
0.9848 |
|
17 |
1.483529864 |
0.0872 |
0.9962 |
|
18 |
1.570796327 |
0.0000 |
1.0000 |
|
19 |
1.658062789 |
-0.0872 |
0.9962 |
|
20 |
1.745329252 |
-0.1736 |
0.9848 |
|
21 |
1.832595715 |
-0.2588 |
0.9659 |
|
22 |
1.919862177 |
-0.3420 |
0.9397 |
|
23 |
2.00712864 |
-0.4226 |
0.9063 |
|
24 |
2.094395102 |
-0.5000 |
0.8660 |
|
25 |
2.181661565 |
-0.5736 |
0.8192 |
|
26 |
2.268928028 |
-0.6428 |
0.7660 |
|
27 |
2.35619449 |
-0.7071 |
0.7071 |
|
28 |
2.443460953 |
-0.7660 |
0.6428 |
|
29 |
2.530727415 |
-0.8192 |
0.5736 |
|
30 |
2.617993878 |
-0.8660 |
0.5000 |
|
31 |
2.705260341 |
-0.9063 |
0.4226 |
|
32 |
2.792526803 |
-0.9397 |
0.3420 |
|
33 |
2.879793266 |
-0.9659 |
0.2588 |
|
34 |
2.967059728 |
-0.9848 |
0.1736 |
|
35 |
3.054326191 |
-0.9962 |
0.0872 |
|
36 |
3.141592654 |
-1.0000 |
0.0000 |
|
37 |
3.228859116 |
-0.9962 |
-0.0872 |
|
38 |
3.316125579 |
-0.9848 |
-0.1736 |
|
39 |
3.403392041 |
-0.9659 |
-0.2588 |
|
40 |
3.490658504 |
-0.9397 |
-0.3420 |
|
41 |
3.577924967 |
-0.9063 |
-0.4226 |
|
42 |
3.665191429 |
-0.8660 |
-0.5000 |
|
43 |
3.752457892 |
-0.8192 |
-0.5736 |
|
44 |
3.839724354 |
-0.7660 |
-0.6428 |
|
45 |
3.926990817 |
-0.7071 |
-0.7071 |
|
46 |
4.01425728 |
-0.6428 |
-0.7660 |
|
47 |
4.101523742 |
-0.5736 |
-0.8192 |
|
48 |
4.188790205 |
-0.5000 |
-0.8660 |
|
49 |
4.276056667 |
-0.4226 |
-0.9063 |
|
50 |
4.36332313 |
-0.3420 |
-0.9397 |
|
51 |
4.450589593 |
-0.2588 |
-0.9659 |
|
52 |
4.537856055 |
-0.1736 |
-0.9848 |
|
53 |
4.625122518 |
-0.0872 |
-0.9962 |
|
54 |
4.71238898 |
0.0000 |
-1.0000 |
|
55 |
4.799655443 |
0.0872 |
-0.9962 |
|
56 |
4.886921906 |
0.1736 |
-0.9848 |
|
57 |
4.974188368 |
0.2588 |
-0.9659 |
|
58 |
5.061454831 |
0.3420 |
-0.9397 |
|
59 |
5.148721293 |
0.4226 |
-0.9063 |
|
60 |
5.235987756 |
0.5000 |
-0.8660 |
|
61 |
5.323254219 |
0.5736 |
-0.8192 |
|
62 |
5.410520681 |
0.6428 |
-0.7660 |
|
63 |
5.497787144 |
0.7071 |
-0.7071 |
|
64 |
5.585053606 |
0.7660 |
-0.6428 |
|
65 |
5.672320069 |
0.8192 |
-0.5736 |
|
66 |
5.759586532 |
0.8660 |
-0.5000 |
|
67 |
5.846852994 |
0.9063 |
-0.4226 |
|
68 |
5.934119457 |
0.9397 |
-0.3420 |
|
69 |
6.021385919 |
0.9659 |
-0.2588 |
|
70 |
6.108652382 |
0.9848 |
-0.1736 |
|
71 |
6.195918845 |
0.9962 |
-0.0872 |
|
72 |
6.283185307 |
1.0000 |
0.0000 |
2. 또 다른 예제
> x1 = seq(0, 1, length = 20)
> y1 = rep(0, 20) // 0 을 20번 반복
> x2 = rep(0, 20)
> y2 = seq(0.75, 0, length = 20)
> plot.new()
> plot.window(xlim = c(0, 1), ylim = c(0,0.75), asp = 1)
> segments(x1, y1, x2, y2) // (x1, y1) 에서 (x2, y2) 로 선 긋기
|
|
from |
to | ||
|
|
x1 |
y1 |
x2 |
y2 |
|
0 |
0.00 |
0 |
0 |
0.750 |
|
1 |
0.05 |
0 |
0 |
0.713 |
|
2 |
0.10 |
0 |
0 |
0.675 |
|
3 |
0.15 |
0 |
0 |
0.638 |
|
4 |
0.20 |
0 |
0 |
0.600 |
|
5 |
0.25 |
0 |
0 |
0.563 |
|
6 |
0.30 |
0 |
0 |
0.525 |
|
7 |
0.35 |
0 |
0 |
0.488 |
|
8 |
0.40 |
0 |
0 |
0.450 |
|
9 |
0.45 |
0 |
0 |
0.413 |
|
10 |
0.50 |
0 |
0 |
0.375 |
|
11 |
0.55 |
0 |
0 |
0.338 |
|
12 |
0.60 |
0 |
0 |
0.300 |
|
13 |
0.65 |
0 |
0 |
0.263 |
|
14 |
0.70 |
0 |
0 |
0.225 |
|
15 |
0.75 |
0 |
0 |
0.188 |
|
16 |
0.80 |
0 |
0 |
0.150 |
|
17 |
0.85 |
0 |
0 |
0.113 |
|
18 |
0.90 |
0 |
0 |
0.075 |
|
19 |
0.95 |
0 |
0 |
0.038 |
|
20 |
1.00 |
0 |
0 |
0.000 |
|
|
from |
to | ||
|
|
x1 |
y1 |
x2 |
y2 |
|
0 |
0.00 |
0 |
0 |
0.750 |
|
1 |
0.05 |
0 |
0 |
0.713 |
|
2 |
0.10 |
0 |
0 |
0.675 |
|
3 |
0.15 |
0 |
0 |
0.638 |
|
4 |
0.20 |
0 |
0 |
0.600 |
|
5 |
0.25 |
0 |
0 |
0.563 |
|
6 |
0.30 |
0 |
0 |
0.525 |
|
7 |
0.35 |
0 |
0 |
0.488 |
|
8 |
0.40 |
0 |
0 |
0.450 |
|
9 |
0.45 |
0 |
0 |
0.413 |
|
10 |
0.50 |
0 |
0 |
0.375 |
|
11 |
0.55 |
0 |
0 |
0.338 |
|
12 |
0.60 |
0 |
0 |
0.300 |
|
13 |
0.65 |
0 |
0 |
0.263 |
|
14 |
0.70 |
0 |
0 |
0.225 |
|
15 |
0.75 |
0 |
0 |
0.188 |
|
16 |
0.80 |
0 |
0 |
0.150 |
|
17 |
0.85 |
0 |
0 |
0.113 |
|
18 |
0.90 |
0 |
0 |
0.075 |
|
19 |
0.95 |
0 |
0 |
0.038 |
|
20 |
1.00 |
0 |
0 |
0.000 |
'Season 1 아카이브 > 프로그래밍' 카테고리의 다른 글
| Information Visualization (4) - R 그래픽 기초 (나선형 그리기) (1) | 2014.10.16 |
|---|---|
| 오라클 트리거 trigger 현황 보기 (0) | 2014.09.18 |
| Information Visualization (2) - R 그래픽 기초 (사각형 그리기 예제, 대각선 가진 사각형, 중첩된 사각형) (0) | 2014.09.06 |
| Information Visualization (1) - R 그래픽 기초 (여백조정, 기본함수목록) (0) | 2014.09.06 |
| R 프로그래밍 - 참고자료 Further Resources (0) | 2014.09.06 |