프로그래밍언어/R기초

ggplot 활용하여 다양한 그래프 그리기: 히스토그램,산점도,박스플랏,선그래프

윤채니챈 2023. 7. 3. 23:49
728x90
반응형

이전 ggplot(bar):막대그래프를 그리기

2023.06.17 - [R기초] - ggplot 사용하기

 

ggplot 사용하기

- 사용할 데이터(캐글데이터 사용) https://www.kaggle.com/datasets/nehalbirla/vehicle-dataset-from-cardekho Vehicle dataset Used Cars data form websites www.kaggle.com 0. 데이터 로드하기 dir = '/Users/yunchaewon/Desktop/r-data analysis/'

xcwaonvy.tistory.com


사용데이터 업로드 되어있습니다 확인해주세요~

audi.csv
0.51MB

 

히스토그램

 

막대그래프와 히스토그램 차이점

 

막대 그래프 (Bar Graph):

  • 막대 그래프는 범주형 데이터의 빈도, 비율 또는 크기를 시각화하는 데 사용됩니다.
  • 각 범주는 서로 독립적으로 나타나며, 각 막대는 범주의 크기를 나타냅니다.
  • 막대 그래프는 막대의 높이로 정보를 전달합니다. 막대의 높이는 해당 범주의 값을 나타냅니다.
  • 각 막대 사이의 간격은 범주 간의 구분을 도와줍니다.
  • 막대 그래프는 범주형 데이터의 비교나 분포를 시각화하는 데 유용합니다.

 

히스토그램 (Histogram):

  • 히스토그램은 연속형 데이터의 분포를 시각화하는 데 사용됩니다.
  • 데이터는 구간 또는 버킷으로 나누어져서 각 구간에 속하는 데이터의 빈도를 나타냅니다.
  • 히스토그램은 구간별 빈도를 막대의 높이로 표현합니다. 구간의 크기와 빈도에 따라 막대의 높이가 달라집니다.
  • 막대 사이의 간격은 연속형 데이터의 구간을 구분해줍니다.
  • 히스토그램은 데이터의 분포 모양을 확인하고, 이상치나 이상 동작을 식별하는 데 유용합니다.

 

bin = 막대개수 사용

ggplot(Audi, aes(x = price))+
  geom_histogram(bins = 100,
                 aes(fill = transmission),alpha=0.6)

alpha = 그래프의 채도를 낮춰줌

 

binwidth 매개변수 =  히스토그램의 막대 너비를 지정

ggplot(Audi, aes(x = price))+
  geom_histogram(binwidth = 5000,
                 aes(fill = transmission),alpha=0.6)

 

산점도 

 

 

산점도(Scatter plot)

  • 두 개의 연속형 변수 사이의 관계를 시각화하는 데 사용되는 그래프입니다.
  • 각 변수는 그래프의 x축과 y축에 대응되며, 데이터 포인트는 점으로 나타내어집니다.

 

 

-연비(mpg)와 가격(price)의 관계를 표현하는 산점도 산점도 그래프

#산점도

ggplot(Audi, aes(x = mpg, y = price)) +
  geom_point(aes(col = fuelType))

*** 산점도에서는 fill 대신 col를 사용하도록한다

 

박스플랏

 

박스플롯(Box plot)

  • 데이터의 분포와 이상치(Outlier)를 시각적으로 나타내기 위한 그래프입니다.
  • 주어진 데이터의 중앙값, 사분위수, 최소값, 최대값 등을 한눈에 파악할 수 있습니다.
  1. 상자 (Box): 상자는 데이터의 중앙값을 나타냅니다. 상자의 아래쪽 가장자리는 1사분위수(Q1)를, 위쪽 가장자리는 3사분위수(Q3)를 나타냅니다. 따라서 상자의 높이는 데이터의 중간 50% 범위를 표시합니다.
  2. 수염 (Whiskers): 수염은 데이터의 최소값과 최대값을 나타냅니다. 보통은 1.5배의 사분위 범위를 벗어난 값들을 이상치로 간주하고, 그 이상치를 벗어난 값을 수염의 끝까지 그리는 경우가 일반적입니다. 이상치를 표시할 때는 점 또는 십자가 등으로 나타내는 경우도 있습니다.
  3. 중앙값 (Median): 중앙값은 데이터의 중심 경향성을 나타냅니다. 상자 내에 가로선으로 표시됩니다.
  4. 이상치 (Outlier): 수염을 벗어난 값들을 이상치로 간주하고 별도로 표시합니다. 이상치는 데이터의 분포에서 동떨어진 값이며, 박스플롯을 통해 데이터셋의 특이값을 확인할 수 있습니다.
ggplot(Audi, aes(x= fuelType,y = price))+
  geom_boxplot(outlier.colour = 'red',
               aes(fill = fuelType))+
  theme(text = element_text(size=12, face ='bold'),
        legend.position = 'top')

- 이상치 : outlier.colour 로 색상지정

- box : fill 로 색상지정

 

  • fill = fuelType으로 지정 

  • fill = Trasmission으로 지정 
  • fuelType를 각 trasmission별로 구분가능

선그래프

 

선그래프(line)

  • 이산형에 따른 추세를 보고자 할때 그리는 그래프
  • 주로 시간에 따른 추세를 표현할때 선 그래프 활용

 

- 연도(year)별 가격 알아보기

ggplot(Audi, aes(x = year, y=price))+
  geom_point()+ #년도별 가격을 점으로 표시
  geom_line() #라인그래프 그리기

 

-> 그래프가 이상한것을 알 수 있음 

이럴경우 price의 평균을 활용할 것 : groupby활용

 

Audi%>%
  group_by(year,fuelType)%>%
  summarise(price_m = mean(price))%>%
  ggplot(aes(x= year, y = price_m,col =fuelType))+
  geom_point()+
  geom_line()

728x90
반응형