DATA VISUALIZATION #3

codataffee·2024년 5월 10일
0

DATA

목록 보기
11/22
post-thumbnail

📌 데이터 시각화 실습


📌 flights 데이터셋 활용 시각화

  • 데이터 불러오기

import seaborn as sns
import matplotlib.pyplot as plt
# Seaborn의 내장 데이터셋 'flights' 불러오기
flights_data = sns.load_dataset('flights')
flights_data

📌 연도별 총 승객 수

plt.plot(flights_data.groupby('year')['passengers'].sum())
plt.title('연도별 총 승객 수')
plt.xlabel('연도')
plt.ylabel('총 승객 수')
plt.show()
  • 정답 코드

# Line plot: 연도별 총 승객 수
plt.figure(figsize=(6, 4))
plt.plot(flights_data.groupby('year')['passengers'].sum(), marker='o')
plt.title('Total Passengers per Year')
plt.xlabel('Year')
plt.ylabel('Total Passengers')
plt.grid(True)
plt.show()
  • marker
  • grid(True)
    확인..

📌 연도별 평균 승객 수

plt.plot(flights_data.groupby('year')['passengers'].mean())
plt.title('연도별 평균 승객 수')
plt.xlabel('연도')
plt.ylabel('평균 승객 수')
plt.show()
  • 정답 코드

# Bar plot: 연도별 평균 승객 수
plt.figure(figsize=(6, 4))
plt.bar(flights_data['year'].unique(), flights_data.groupby('year')['passengers'].mean())
plt.title('Average Passengers per Year')
plt.xlabel('Year')
plt.ylabel('Average Passengers')
plt.show()
  • 바 그래프로 표현
    확인..

📌 승객 수 분포

plt.hist(flights_data['passengers'], bins=30)
plt.title('승객 수 분포')
plt.xlabel('승객 수')
plt.ylabel('분포')
plt.show()
  • 정답 코드

# Histogram: 승객 수 분포
plt.figure(figsize=(6, 4))
plt.hist(flights_data['passengers'], bins=20, edgecolor='black')
plt.title('Passengers Distribution')
plt.xlabel('Passengers')
plt.ylabel('Frequency')
plt.show()
  • edgecolor
    확인...

📌 연도별 승객 수와 월간 승객 수

plt.scatter(flights_data.groupby('year')['passengers'].sum(), flights_data.groupby('month')['passengers'].sum())
plt.title('연도별 승객 수와 월간 승객 수')
plt.xlabel('연도별 승객 수')
plt.ylabel('연간 승객 수')
plt.show()
  • 정답 코드

# Scatter plot: 연도별 승객 수와 월간 승객 수
plt.figure(figsize=(6, 4))
for month in flights_data['month'].unique():
    plt.scatter(flights_data[flights_data['month'] == month]['year'], 
                flights_data[flights_data['month'] == month]['passengers'], 
                label=month, alpha=0.7)
plt.title('Passengers per Year by Month')
plt.xlabel('Year')
plt.ylabel('Passengers')
plt.legend()
plt.show()
  • 흠..

📌 월별 승객 수 분포

plt.bar(flights_data['month'].unique(), flights_data.groupby('month')['passengers'].sum())
plt.title('월별 승객 수 분포')
plt.xlabel('월')
plt.ylabel('승객 수')
plt.show()
  • 정답 코드

# Box plot: 월별 승객 수 분포
plt.figure(figsize=(6, 4))
plt.boxplot([flights_data[flights_data['month'] == month]['passengers'] for month in flights_data['month'].unique()], 
            labels=flights_data['month'].unique())
plt.title('Passengers Distribution by Month')
plt.xlabel('Month')
plt.ylabel('Passengers')
plt.show()
  • 박스 플롯.. 엄청 보기 쉽구나!

📌 tips 데이터셋 활용 시각화

  • 데이터 불러오기

import seaborn as sns
import matplotlib.pyplot as plt
# Seaborn의 내장 데이터셋 'tips' 불러오기
tips_data = sns.load_dataset('tips')
tips_data

📌 요일별 팁 금액의 평균

  1. 제목 : Average Tips by Day
  2. X축 : Day of the Week
  3. Y축 : Average Tip Amount

plt.bar(tips_data['day'].unique(), tips_data.groupby('day')['tip'].mean())
plt.title('Average Tips by Day')
plt.xlabel('Day of the Week')
plt.ylabel('Average Tip Amount')
plt.show()
  • 정답 코드

# Line plot: 요일별 팁 금액의 평균
plt.figure(figsize=(6, 4))
tips_day = tips_data.groupby('day')['tip'].mean()
plt.plot(tips_day.index, tips_day.values, marker='o', linestyle='-', color='green')
plt.title('Average Tips by Day')
plt.xlabel('Day of the Week')
plt.ylabel('Average Tip Amount')
plt.grid(True)
  • 값 자체가 다르게 나왔다.
    X축에 요일별 인덱스를 넣고 Y축에 요일별 값을 넣어 선 그래프로 시각화.
    확인..

📌 요일별 총 팁 금액

  1. 제목 : Total Tips by Day
  2. X축 : Day of the Week
  3. Y축 : Total Tip Amount

plt.bar(tips_data['day'].unique(), tips_data.groupby('day')['tip'].sum())
plt.title('Total Tips by Day')
plt.xlabel('Day of the Week')
plt.ylabel('Total Tip Amount')
plt.show()
  • 정답 코드

# Bar plot: 요일별 총 팁 금액
plt.figure(figsize=(6, 4))
total_tips = tips_data.groupby('day')['tip'].sum()
plt.bar(total_tips.index, total_tips.values, color='skyblue')
plt.title('Total Tips by Day')
plt.xlabel('Day of the Week')
plt.ylabel('Total Tip Amount')
  • 그림은 똑같이 나왔으나,
    X축의 날짜 순서가 반대로 나왔다.
    index를 통해 X축에 넣어줘야 되는 것 같다!

📌 식사 금액 분포

  1. 제목 : Distribution of Total Bill
  2. X축 : Total Bill Amount
  3. Y축 : Frequency

plt.hist(tips_data['total_bill'], bins = 30)
plt.title('Distribution of Total Bill')
plt.xlabel('Total Bill Amount')
plt.ylabel('Frequency')
plt.show()
  • 정답 코드

# Histogram: 식사 금액 분포
plt.figure(figsize=(6, 4))
plt.hist(tips_data['total_bill'], bins=15, edgecolor='black', alpha=0.7)
plt.title('Distribution of Total Bill')
plt.xlabel('Total Bill Amount')
plt.ylabel('Frequency')
  • edgecolor
  • alpha - 투명도?!

📌 식사 금액과 팁 금액의 관계

  1. 제목 : Tip Amount vs Total Bill
  2. X축 : Total Bill Amount
  3. Y축 : Tip Amount

plt.scatter(tips_data['total_bill'], tips_data['tip'])
plt.title('Tip Amount vs Total Bill')
plt.xlabel('Total Bill Amount')
plt.ylabel('Tip Amount')
plt.show()
  • 정답 코드

# Scatter plot: 식사 금액과 팁 금액의 관계
plt.figure(figsize=(6, 4))
plt.scatter(tips_data['total_bill'], tips_data['tip'], color='orange', alpha=0.7)
plt.title('Tip Amount vs Total Bill')
plt.xlabel('Total Bill Amount')
plt.ylabel('Tip Amount')
  • 색깔과 투명도 빼고 동일한 결과!

📌 요일별 식사 금액 분포

  1. 제목 : Total Bill Distribution by Day
  2. X축 : Day of the Week
  3. Y축 : Total Bill Amount

bills = tips_data.groupby('day')['total_bill'].sum()
plt.bar(bills.index, bills.values)
plt.title('Total Bill Distribution by Day')
plt.xlabel('Day of the Week')
plt.ylabel('Total Bill Amount')
plt.show()
  • 정답 코드

# Box plot: 요일별 식사 금액 분포
plt.figure(figsize=(6, 4))
sns.boxplot(x='day', y='total_bill', data=tips_data, palette='Set1')
plt.title('Total Bill Distribution by Day')
plt.xlabel('Day of the Week')
plt.ylabel('Total Bill Amount')
# 범례 추가
plt.legend(['Line Plot'], loc='upper right')
# 텍스트 추가
plt.text(3, 3, 'Sample Text', fontsize=12)
plt.show()
  • 바 그래프에 인덱스를 써봤는데..
    요일마다의 금액 분포를 보기 위함이니까 박스플롯을 쓰는구나.

profile
커피 좋아하는 데이터 꿈나무

0개의 댓글

관련 채용 정보