Data visualization/데이터시각화(R)

데이터시각화 R_ggplot2_Titanic 데이터(범주형 변수)

뉴욕킴 2023. 9. 10. 15:05

1. 타이타닉 데이터 불러오기

 data(Titanic)

2. 데이터 구성 확인

Titanic
, , Age = Child, Survived = No

      Sex
Class  Male Female
  1st     0      0
  2nd     0      0
  3rd    35     17
  Crew    0      0

, , Age = Adult, Survived = No

      Sex
Class  Male Female
  1st   118      4
  2nd   154     13
  3rd   387     89
  Crew  670      3

, , Age = Child, Survived = Yes

      Sex
Class  Male Female
  1st     5      1
  2nd    11     13
  3rd    13     14
  Crew    0      0

, , Age = Adult, Survived = Yes

      Sex
Class  Male Female
  1st    57    140
  2nd    14     80
  3rd    75     76
  Crew  192     20

3. class별 인원 분포 확인

 apply(Titanic,1,sum)
 1st  2nd  3rd Crew 
 325  285  706  885 

4. 성별 분포 확인

 apply(Titanic,2,sum)
 Male Female 
  1731    470 

5. 나이 분포 확인

apply(Titanic,3,sum)
Child Adult 
  109  2092 

6. 생존 여부

apply(Titanic,4,sum)
  No  Yes 
1490  711 

7. 1,4번으로 생존인원 확인

apply(Titanic,c(1,4),sum)
  Survived
Class   No Yes
  1st  122 203
  2nd  167 118
  3rd  528 178
  Crew 673 212

8. 성별로 생존인원 확인

apply(Titanic,c(2,4),sum)
 Survived
Sex        No Yes
  Male   1364 367
  Female  126 344

9. 연령대별 확인

apply(Titanic,c(3,4),sum)
       Survived
Age       No Yes
  Child   52  57
  Adult 1438 654

10. 시각화 진행

  • library(ggmosaic) 이용

1) ggmosaic 설치

install.packages("ggmosaic")

2) 라이브러리 불러오기

 library(ggmosaic)

3) array에서 dataframe으로 바꿔주기

as.data.frame(titanic)
  Class    Sex   Age Survived
1     3rd   Male Child       No
2     3rd   Male Child       No
3     3rd   Male Child       No
4     3rd   Male Child       No
5     3rd   Male Child       No
6     3rd   Male Child       No
7     3rd   Male Child       No
8     3rd   Male Child       No
9     3rd   Male Child       No
10    3rd   Male Child       No
11    3rd   Male Child       No
12    3rd   Male Child       No
13    3rd   Male Child       No
14    3rd   Male Child       No
15    3rd   Male Child       No
16    3rd   Male Child       No
17    3rd   Male Child       No
18    3rd   Male Child       No
19    3rd   Male Child       No
20    3rd   Male Child       No
21    3rd   Male Child       No
22    3rd   Male Child       No
23    3rd   Male Child       No
24    3rd   Male Child       No
25    3rd   Male Child       No
26    3rd   Male Child       No
27    3rd   Male Child       No
28    3rd   Male Child       No
29    3rd   Male Child       No
30    3rd   Male Child       No
31    3rd   Male Child       No
32    3rd   Male Child       No
33    3rd   Male Child       No
34    3rd   Male Child       No
35    3rd   Male Child       No
36    3rd Female Child       No
37    3rd Female Child       No
38    3rd Female Child       No
39    3rd Female Child       No
40    3rd Female Child       No
41    3rd Female Child       No
42    3rd Female Child       No
43    3rd Female Child       No
44    3rd Female Child       No
45    3rd Female Child       No
46    3rd Female Child       No
47    3rd Female Child       No
48    3rd Female Child       No
49    3rd Female Child       No
50    3rd Female Child       No
51    3rd Female Child       No
52    3rd Female Child       No
53    1st   Male Adult       No
54    1st   Male Adult       No
55    1st   Male Adult       No
56    1st   Male Adult       No
57    1st   Male Adult       No
58    1st   Male Adult       No
59    1st   Male Adult       No
60    1st   Male Adult       No
61    1st   Male Adult       No
62    1st   Male Adult       No
63    1st   Male Adult       No
64    1st   Male Adult       No
65    1st   Male Adult       No
66    1st   Male Adult       No
67    1st   Male Adult       No
68    1st   Male Adult       No
69    1st   Male Adult       No
70    1st   Male Adult       No
71    1st   Male Adult       No
72    1st   Male Adult       No
73    1st   Male Adult       No
74    1st   Male Adult       No
75    1st   Male Adult       No
76    1st   Male Adult       No
77    1st   Male Adult       No
78    1st   Male Adult       No
79    1st   Male Adult       No
80    1st   Male Adult       No
81    1st   Male Adult       No
82    1st   Male Adult       No
83    1st   Male Adult       No
84    1st   Male Adult       No
85    1st   Male Adult       No
86    1st   Male Adult       No
87    1st   Male Adult       No
88    1st   Male Adult       No
89    1st   Male Adult       No
90    1st   Male Adult       No
91    1st   Male Adult       No
92    1st   Male Adult       No
93    1st   Male Adult       No
94    1st   Male Adult       No
95    1st   Male Adult       No
96    1st   Male Adult       No
97    1st   Male Adult       No
98    1st   Male Adult       No
99    1st   Male Adult       No
100   1st   Male Adult       No
101   1st   Male Adult       No
102   1st   Male Adult       No
103   1st   Male Adult       No
104   1st   Male Adult       No
105   1st   Male Adult       No
106   1st   Male Adult       No
107   1st   Male Adult       No
108   1st   Male Adult       No
109   1st   Male Adult       No
110   1st   Male Adult       No
111   1st   Male Adult       No
112   1st   Male Adult       No
113   1st   Male Adult       No
114   1st   Male Adult       No
115   1st   Male Adult       No
116   1st   Male Adult       No
117   1st   Male Adult       No
118   1st   Male Adult       No
119   1st   Male Adult       No
120   1st   Male Adult       No
121   1st   Male Adult       No
122   1st   Male Adult       No
123   1st   Male Adult       No
124   1st   Male Adult       No
125   1st   Male Adult       No
126   1st   Male Adult       No
127   1st   Male Adult       No
128   1st   Male Adult       No
129   1st   Male Adult       No
130   1st   Male Adult       No
131   1st   Male Adult       No
132   1st   Male Adult       No
133   1st   Male Adult       No
134   1st   Male Adult       No
135   1st   Male Adult       No
136   1st   Male Adult       No
137   1st   Male Adult       No
138   1st   Male Adult       No
139   1st   Male Adult       No
140   1st   Male Adult       No
141   1st   Male Adult       No
142   1st   Male Adult       No
143   1st   Male Adult       No
144   1st   Male Adult       No
145   1st   Male Adult       No
146   1st   Male Adult       No
147   1st   Male Adult       No
148   1st   Male Adult       No
149   1st   Male Adult       No
150   1st   Male Adult       No
151   1st   Male Adult       No
152   1st   Male Adult       No
153   1st   Male Adult       No
154   1st   Male Adult       No
155   1st   Male Adult       No
156   1st   Male Adult       No
157   1st   Male Adult       No
158   1st   Male Adult       No
159   1st   Male Adult       No
160   1st   Male Adult       No
161   1st   Male Adult       No
162   1st   Male Adult       No
163   1st   Male Adult       No
164   1st   Male Adult       No
165   1st   Male Adult       No
166   1st   Male Adult       No
167   1st   Male Adult       No
168   1st   Male Adult       No
169   1st   Male Adult       No
170   1st   Male Adult       No
171   2nd   Male Adult       No
172   2nd   Male Adult       No
173   2nd   Male Adult       No
174   2nd   Male Adult       No
175   2nd   Male Adult       No
176   2nd   Male Adult       No
177   2nd   Male Adult       No
178   2nd   Male Adult       No
179   2nd   Male Adult       No
180   2nd   Male Adult       No
181   2nd   Male Adult       No
182   2nd   Male Adult       No
183   2nd   Male Adult       No
184   2nd   Male Adult       No
185   2nd   Male Adult       No
186   2nd   Male Adult       No
187   2nd   Male Adult       No
188   2nd   Male Adult       No
189   2nd   Male Adult       No
190   2nd   Male Adult       No
191   2nd   Male Adult       No
192   2nd   Male Adult       No
193   2nd   Male Adult       No
194   2nd   Male Adult       No
195   2nd   Male Adult       No
196   2nd   Male Adult       No
197   2nd   Male Adult       No
198   2nd   Male Adult       No
199   2nd   Male Adult       No
200   2nd   Male Adult       No
201   2nd   Male Adult       No
202   2nd   Male Adult       No
203   2nd   Male Adult       No
204   2nd   Male Adult       No
205   2nd   Male Adult       No
206   2nd   Male Adult       No
207   2nd   Male Adult       No
208   2nd   Male Adult       No
209   2nd   Male Adult       No
210   2nd   Male Adult       No
211   2nd   Male Adult       No
212   2nd   Male Adult       No
213   2nd   Male Adult       No
214   2nd   Male Adult       No
215   2nd   Male Adult       No
216   2nd   Male Adult       No
217   2nd   Male Adult       No
218   2nd   Male Adult       No
219   2nd   Male Adult       No
220   2nd   Male Adult       No
221   2nd   Male Adult       No
222   2nd   Male Adult       No
223   2nd   Male Adult       No
224   2nd   Male Adult       No
225   2nd   Male Adult       No
226   2nd   Male Adult       No
227   2nd   Male Adult       No
228   2nd   Male Adult       No
229   2nd   Male Adult       No
230   2nd   Male Adult       No
231   2nd   Male Adult       No
232   2nd   Male Adult       No
233   2nd   Male Adult       No
234   2nd   Male Adult       No
235   2nd   Male Adult       No
236   2nd   Male Adult       No
237   2nd   Male Adult       No
238   2nd   Male Adult       No
239   2nd   Male Adult       No
240   2nd   Male Adult       No
241   2nd   Male Adult       No
242   2nd   Male Adult       No
243   2nd   Male Adult       No
244   2nd   Male Adult       No
245   2nd   Male Adult       No
246   2nd   Male Adult       No
247   2nd   Male Adult       No
248   2nd   Male Adult       No
249   2nd   Male Adult       No
250   2nd   Male Adult       No
 [ reached 'max' / getOption("max.print") -- omitted 1951 rows ]

4) Titanic.data 변수에 위 내용을 저장

Titanic.data = as.data.frame(titanic)
head(Titanic.data)
  Class  Sex   Age Survived
1   3rd Male Child       No
2   3rd Male Child       No
3   3rd Male Child       No
4   3rd Male Child       No
5   3rd Male Child       No
6   3rd Male Child       No

5) ?? 에러발생..ㅠㅠ

ggplot(Titanic.data)+geom_mosaic(aes(x=product(class),weight=Freq,fill=survived))

ggplot(Titanic.data)+geom_mosaic(aes(x=product(survived),weight=Freq,fill=Class))

ggplot(Titanic.data)+geom_mosaic(aes(x=product(Sex),weight=Freq, fill=survived))
ggplot(Titanic.data)+geom_mosaic(aes(x=product(Survived),weight=Freq, fill=Sex))
ggplot(Titanic.data)+geom_mosaic(aes(x=product(Age),weight=Freq,fill=Survived))
ggplot(Titanic.data)+geom_mosaic(aes(x=product(Survived),weight=Freq,fill=Sex))
ggplot(Titanic.data)+geom_mosaic(aes(x=product(Survived),weight=Freq,fill=Age))

1. GGally 설치

install.packages("GGally")
ggpairs(mpg[,-c(1:2)])