본문 바로가기

Code/Phyton

Matplotlib / Histogram / 2D & 3D Scatter Plots

Histograms

히스토그램은 데이터의 분산된 특징들을 한눈에 볼 수 있는 특징이 있다.

이는 데이터가

1. 어디에 위치해있고(located at)

2. 얼만큼이 있는지(how many)

를 손쉽게 파악할 수 있다.

 

양적데이터와 범주형데이터 중

히스토그램은 범주형 데이터(categorical dat)에만 사용가능하다.

 

만일 양적데이터에 사용할 경우 

다른 형태로 변환하는 작업이 필요하다.

 

import pandas as pd
import matplotlib
matplotlib.style.use('ggplot') # Look Pretty
# If the above line throws an error, use plt.style.use('ggplot') instead
	
student_dataset = pd.read_csv("/Datasets/students.data", index_col=0)
	
my_series = student_dataset.G3
my_dataframe = student_dataset[['G3', 'G2', 'G1']] 
	
my_series.plot.hist(alpha=0.5)
my_dataframe.plot.hist(alpha=0.5)


2D Scatter Plots

 

산포도는 특징들간의 상관관계를 파악하는데 유용하다.

이는 구체적이고 수치적인 특징을 보여줄 수있다.

 

또한 산포도의 형태에 따라 양의 혹은 음의 상관관계가 존재한다.

 

import pandas as pd
import matplotlib
	
matplotlib.style.use('ggplot') # Look Pretty
# If the above line throws an error, use plt.style.use('ggplot') instead
	
student_dataset = pd.read_csv("/Datasets/students.data", index_col=0) 
student_dataset.plot.scatter(x='G1', y='G3')

 


3D Scatter Plots

산포도를 다음과 같이 3D로도 만들 수 있다.

 

 

import matplotlib
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
	
import pandas as pd
matplotlib.style.use('ggplot') # Look Pretty
# If the above line throws an error, use plt.style.use('ggplot') instead
	
student_dataset = pd.read_csv("/Datasets/students.data", index_col=0)
	
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.set_xlabel('Final Grade')
ax.set_ylabel('First Grade')
ax.set_zlabel('Daily Alcohol')
	
ax.scatter(student_dataset.G1, student_dataset.G3, student_dataset['Dalc'], c='r', marker='.')
plt.show()