기초 그래프 그리기
seaborn 라이브러리에는 tips라는 데이터 집합이 있다.
tips 데이터 집합은 어떤 식당에서 팁을 지불한 손님의 정보를 모아둔 것이다.
데이터 불러오기
tips = sns.load_dataset("tips")
print(tips.head())
print(type(tips))

위의 데이터로 히스토그램을 그려보자.
히스토그램은 데이터프레임의 열 데이터 분포와 빈도를 살펴보는 용도로 자주 사용하는 그래프이다.
이때 데이터프레임의 total_bill, tip 등의 열을 변수라고 부르기도 한다.
그리고 변수를 하나만 사용해서 그린 그래프를 '일변량 그래프'라고 부른다.
fig = plt.figure()
axes1 = fig.add_subplot(1, 1, 1)
기본 틀을 만든다.
axes1.hist(tips['total_bill'], bins=10)
axes1.set_title('Histogram of Total Bill')
axes1.set_xlabel('Frequency')
axes1.set_ylabel('Total Bill')
fig

total_bill에 대한 히스토그램이다. 이때 x축의 간격은 bins 인잣값으로 저장할 수 있다.
이번에는 산점도 그래프를 그려보자. 산점도 그래프는 변수 2개를 사용해서 만드는 그래프이며 변수 2개를 사용하기 때문에 통계 용어로 '이변량 그래프'라고 부른다.
scatter_plot = plt.figure()
axes1 = scatter_plot.add_subplot(1, 1, 1)
axes1.scatter(tips['total_bill'], tips['tip'])
axes1.set_title('Scatterplot of Total Bill vs Tip')
axes1.set_xlabel('Total Bill')
axes1.set_ylabel('Tip')

박스 그래프를 그려보자. 박스 그래프는 이산형 변수와 연속형 변수를 함께 사용하는 그래프이다.
이산형 변수랑 Female, Male과 같이 명확하게 구분되는 값을 의미하고, 연속형 변수란 Tip과 같이 명확하게 셀 수 없는 범위의 값을 의미한다.
boxplot = plt.figure()
axes1 = boxplot.add_subplot(1, 1, 1)
axes1.boxplot([tips[tips['sex'] == 'Female']['tip'],
tips[tips['sex'] == 'Male']['tip']],
labels=['Female', 'Male'])
axes1.set_title('Boxplot of Tips by Sex')
axes1.set_xlabel('Sex')
axes1.set_ylabel('Tip')

tips 데이터프레임에서 성별이 Female인 데이터와 Male인 데이터에서 tip 열 데이터만 추출하여 리스트에 담아 전달한 것이다.
다변량 그래프 그리기 - 산점도 그래프
3개 이상의 변수를 사용한 그래프를 '다변량 그래프'라고 한다.
만약 지불 금액과 팁만을 사용하여 그린 산점도 그래프에 성별을 추가하면 점의 색상을 다르게 표현하여 그릴 수 있다.
def recode_sex(sex):
if sex == 'Female':
return 0
else:
return 1
성이 female인 데이터는 0으로 return 하는 함수이다. 이를 데이터 프레임에 추가하여 새로운 열을 만들어 color를 다르게 그래프를 그릴 수 있다.
함수로 반환된 값을 브로드캐스팅하기 위해 apply메서드를 사용하여 색을 지정하자.
def recode_sex(sex):
if sex == 'Female':
return 0
else:
return 1
tips['sex_color'] = tips['sex'].apply(recode_sex)
그리고 이제 그래프를 그려 보자.
scatter_plot = plt.figure()
axes1 = scatter_plot.add_subplot(1, 1, 1)
axes1.scatter(
x=tips['total_bill'],
y=tips['tip'],
s=tips['size'] * 10,
c=tips['sex_color'],
alpha=0.5)
axes1.set_title('Total Bill vs Tip Colored by Sex and Sized by Size')
axes1.set_xlabel('Total Bill')
axes1.set_ylabel('Tip')

s는 점의 크기를 c는 점의 색상을 의미한다. alpha는 투명도를 지정하는 인자이다.
기초 그래프 그리기
seaborn 라이브러리에는 tips라는 데이터 집합이 있다.
tips 데이터 집합은 어떤 식당에서 팁을 지불한 손님의 정보를 모아둔 것이다.
데이터 불러오기
tips = sns.load_dataset("tips")
print(tips.head())
print(type(tips))

위의 데이터로 히스토그램을 그려보자.
히스토그램은 데이터프레임의 열 데이터 분포와 빈도를 살펴보는 용도로 자주 사용하는 그래프이다.
이때 데이터프레임의 total_bill, tip 등의 열을 변수라고 부르기도 한다.
그리고 변수를 하나만 사용해서 그린 그래프를 '일변량 그래프'라고 부른다.
fig = plt.figure()
axes1 = fig.add_subplot(1, 1, 1)
기본 틀을 만든다.
axes1.hist(tips['total_bill'], bins=10)
axes1.set_title('Histogram of Total Bill')
axes1.set_xlabel('Frequency')
axes1.set_ylabel('Total Bill')
fig

total_bill에 대한 히스토그램이다. 이때 x축의 간격은 bins 인잣값으로 저장할 수 있다.
이번에는 산점도 그래프를 그려보자. 산점도 그래프는 변수 2개를 사용해서 만드는 그래프이며 변수 2개를 사용하기 때문에 통계 용어로 '이변량 그래프'라고 부른다.
scatter_plot = plt.figure()
axes1 = scatter_plot.add_subplot(1, 1, 1)
axes1.scatter(tips['total_bill'], tips['tip'])
axes1.set_title('Scatterplot of Total Bill vs Tip')
axes1.set_xlabel('Total Bill')
axes1.set_ylabel('Tip')

박스 그래프를 그려보자. 박스 그래프는 이산형 변수와 연속형 변수를 함께 사용하는 그래프이다.
이산형 변수랑 Female, Male과 같이 명확하게 구분되는 값을 의미하고, 연속형 변수란 Tip과 같이 명확하게 셀 수 없는 범위의 값을 의미한다.
boxplot = plt.figure()
axes1 = boxplot.add_subplot(1, 1, 1)
axes1.boxplot([tips[tips['sex'] == 'Female']['tip'],
tips[tips['sex'] == 'Male']['tip']],
labels=['Female', 'Male'])
axes1.set_title('Boxplot of Tips by Sex')
axes1.set_xlabel('Sex')
axes1.set_ylabel('Tip')

tips 데이터프레임에서 성별이 Female인 데이터와 Male인 데이터에서 tip 열 데이터만 추출하여 리스트에 담아 전달한 것이다.
다변량 그래프 그리기 - 산점도 그래프
3개 이상의 변수를 사용한 그래프를 '다변량 그래프'라고 한다.
만약 지불 금액과 팁만을 사용하여 그린 산점도 그래프에 성별을 추가하면 점의 색상을 다르게 표현하여 그릴 수 있다.
def recode_sex(sex):
if sex == 'Female':
return 0
else:
return 1
성이 female인 데이터는 0으로 return 하는 함수이다. 이를 데이터 프레임에 추가하여 새로운 열을 만들어 color를 다르게 그래프를 그릴 수 있다.
함수로 반환된 값을 브로드캐스팅하기 위해 apply메서드를 사용하여 색을 지정하자.
def recode_sex(sex):
if sex == 'Female':
return 0
else:
return 1
tips['sex_color'] = tips['sex'].apply(recode_sex)
그리고 이제 그래프를 그려 보자.
scatter_plot = plt.figure()
axes1 = scatter_plot.add_subplot(1, 1, 1)
axes1.scatter(
x=tips['total_bill'],
y=tips['tip'],
s=tips['size'] * 10,
c=tips['sex_color'],
alpha=0.5)
axes1.set_title('Total Bill vs Tip Colored by Sex and Sized by Size')
axes1.set_xlabel('Total Bill')
axes1.set_ylabel('Tip')

s는 점의 크기를 c는 점의 색상을 의미한다. alpha는 투명도를 지정하는 인자이다.