내배캠(개인과제)/Python

[온라인강의] 데이터 시각화 - Matplotlib

신짜린 2024. 7. 18. 11:31

숙제 1

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd

flights_data = sns.load_dataset('flights')
flights_data

 

문제 1

 연도별 총 승객 수

a = flights_data.groupby('year')['passengers'].sum().reset_index()

plt.rcParams['font.family'] = 'Malgun Gothic'
plt.rc('font', size = 15)
plt.figure(figsize = (8, 5))
plt.plot(a['year'], a['passengers'], color = 'lightcoral', marker = 'o')
plt.xlabel('year')
plt.ylabel('passengers')
plt.title('연도별 총 승객 수')
plt.show()

 

문제 2

 연도별 평균 승객 수

b = flights_data.groupby('year').mean().reset_index()

plt.rcParams['font.family'] = 'Malgun Gothic'
plt.figure(figsize = (8, 5))
plt.bar(b['year'], b['passengers'], color = 'lightskyblue')
plt.xlabel('year')
plt.ylabel('passengers')
plt.title('연도별 평균 승객 수')
plt.show()

 

문제 3

 승객 수 분포

plt.figure(figsize = (8, 6))
plt.rc('font', size = 20)
plt.hist(flights_data['passengers'], bins = 10, color = 'mediumpurple', edgecolor = 'black')
plt.xlabel('passengers')
plt.ylabel('Frequency')
plt.title('승객 수 분포')
plt.show()

 

문제 4

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

plt.figure(figsize = (10, 6))
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('연도별 승객 수와 월간 승객 수')
plt.xlabel('Year')
plt.ylabel('Passengers')
plt.legend()
plt.show()

 

문제 5

 월별 승객 수 분포

d = flights_data.groupby('month')['passengers'].sum().reset_index()

plt.figure(figsize = (10, 10))
plt.pie(d.passengers, labels = d.month, autopct = '%1.1f%%', colors = ['lightyellow', 'wheat', 'mistyrose', 'lightpink', 'thistle', 'silver', 'lavender', 'lightsteelblue', 'lightskyblue', 'powderblue', 'lightcyan', 'darkseagreen'])
plt.title('월별 승객 수 분포')
plt.show()

 

숙제 2

import seaborn as sns
import matplotlib.pyplot as plt

tips_data = sns.load_dataset('tips')
tips_data

 

문제 1

 요일별 팁 금액의 평균

  1. 제목 : Average Tips by Day
  2. X축 : Day of the Week
  3. Y축 : Average Tip Amount
a = tips_data.groupby('day')['tip'].mean().reset_index()

plt.figure(figsize = (8, 5))
plt.rc('font', size = 15)
plt.plot(a['day'], a['tip'], color = 'palevioletred', marker = 'o')
plt.xlabel('Day of the Week')
plt.ylabel('Average Tip Amount')
plt.title('Average Tips by Day')
plt.show()

 

문제 2

 요일별 총 팁 금액

  1. 제목 : Total Tips by Day
  2. X축 : Day of the Week
  3. Y축 : Total Tip Amount
b = tips_data.groupby('day')['tip'].sum().reset_index()

plt.figure(figsize = (7, 5))
plt.rc('font', size = 15)
plt.bar(b['day'], b['tip'], color = 'lightsteelblue')
plt.xlabel('Day of the Week') 
plt.ylabel('Total Tip Amount')
plt.title('Total Tips by Dayy')
plt.show()

 

문제 3

 식사 금액 분포

  1. 제목 : Distribution of Total Bill
  2. X축 : Total Bill Amount
  3. Y축 : Frequency
plt.figure(figsize = (10, 5))
plt.hist(tips_data['total_bill'], bins = 20, color = 'thistle', edgecolor = 'black')
plt.xlabel('Total Bill Amount')
plt.ylabel('Frequency')
plt.title('Distribution of Total Bill')
plt.show()

 

문제 4

 식사 금액과 팁 금액의 관계

  1. 제목 : Tip Amount vs Total Bill
  2. X축 : Total Bill Amount
  3. Y축 : Tip Amount
x = tips_data['total_bill']
y = tips_data['tip']

plt.figure(figsize = (8, 6))
plt.scatter(x, y, color = 'teal')
plt.xlabel('Total Bill Amount')
plt.ylabel('Tip Amount')
plt.title('Tip Amount vs Total Bill')
plt.show()

 

문제 5

 요일별 식사 금액 분포

  1. 제목 : Total Bill Distribution by Day
  2. X축 : Day of the Week
  3. Y축 : Total Bill Amount
plt.figure(figsize = (8, 6))
sns.boxplot(x = 'day', y = 'total_bill', data=tips_data, palette = 'Set2')
plt.title('Total Bill Distribution by Day')
plt.xlabel('Day of the Week')
plt.ylabel('Total Bill Amount')

실습 한 걸음 더 나아가기.html
0.77MB

'내배캠(개인과제) > Python' 카테고리의 다른 글

[개인과제] ML  (0) 2024.08.21
[온라인강의] 데이터 전처리 - Pandas  (0) 2024.07.18
[라이브세션] 파이썬 기초 3회차  (0) 2024.07.11