728x90
반응형
import pandas as pd
import matplotlib.pyplot as plt
plt.style.use('default')

auto-mpg.csv
0.02MB

scatter 산점도

df = pd.read_csv('auto-mpg.csv', header=None)
df.columns = ['mpg', 'cylinders', 'desplacement', 'horsepower', 'weight', 'acceleration', 'model year', 'origin', 'name']
df.plot(kind = 'scatter', x='weight', y='mpg', c ='coral', s=10, figsize = (10, 5))
plt.title('Scatter Plot - mpg vs. weight')
plt.show()

bubble => s로 크기 지정, alpha로 투명도

df = pd.read_csv('auto-mpg.csv', header=None)
df.columns = ['mpg', 'cylinders', 'desplacement', 'horsepower', 'weight', 'acceleration', 'model year', 'origin', 'name']
cylineder_size = df.cylinders / df.cylinders.max() * 300
df.plot(kind = 'scatter', x='weight', y='mpg', c ='coral', s=cylineder_size, figsize = (10, 5), alpha = 0.3)
plt.title('Scatter Plot - mpg vs. weight')
plt.show()

색상 설정

cylineder_size = df.cylinders / df.cylinders.max() * 300
df.plot(kind = 'scatter', x='weight', y='mpg', marker ='+', s=50, c=cylineder_size, cmap='viridis', figsize = (10, 5), alpha = 0.3)
# cmap color mapping
plt.title('Scatter Plot - mpg vs. weight - cylinder')
# plt.savefig('scatter_transparent.png', transparent = True) # 현재 그림을 이미지파일 생성
plt.savefig('scatter_transparent.png', transparent = True) # transparent 투명한 그림으로 표시
plt.show()

pie graph

df['count'] = 1
print(df.head())
df_origin = df.groupby('origin').sum()# origin 기준으로 그룹별 합이 df_origin
print(df_origin.head())
# df_origin['count'] 국가별 자동차 갯수
df_origin.index = ['USA','EU','JAPAN']
# 제조국가 origin 값을 실제 지역명으로 변경
# '%1.1f%%' : %1.1f 소숫점 이하 한자리, %% 퍼센트 표시
df_origin['count'].plot(kind='pie', figsize = (7, 5), autopct='%1.1f%%',# 퍼센트% 표시
                        startangle = 10, # 파이조각 나누는 시작점  각도 표시
                        colors=['chocolate','bisque','cadetblue']
                       )
plt.title('model origin', size = 20)
plt.axis('equal') # 파이차트 비율 같게, 원에 가깝게 조정
plt.legend(labels = df_origin.index, loc='upper right')
plt.show()


    mpg  cylinders  desplacement horsepower  weight  acceleration  model year  \
0  18.0          8         307.0      130.0  3504.0          12.0          70   
1  15.0          8         350.0      165.0  3693.0          11.5          70   
2  18.0          8         318.0      150.0  3436.0          11.0          70   
3  16.0          8         304.0      150.0  3433.0          12.0          70   
4  17.0          8         302.0      140.0  3449.0          10.5          70   

   origin                       name  count  
0       1  chevrolet chevelle malibu      1  
1       1          buick skylark 320      1  
2       1         plymouth satellite      1  
3       1              amc rebel sst      1  
4       1                ford torino      1  
           mpg  cylinders  desplacement    weight  acceleration  model year  \
origin                                                                        
1       5000.8       1556       61229.5  837121.0        3743.4       18827   
2       1952.4        291        7640.0  169631.0        1175.1        5307   
3       2405.6        324        8114.0  175477.0        1277.6        6118   

        count  
origin         
1         249  
2          70  
3          79

import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import font_manager, rc
rc('font', family = 'Malgun Gothic')
plt.style.use('seaborn-poster')
plt.rcParams['axes.unicode_minus'] = False
df = pd.read_csv('auto-mpg.csv', header=None)
df.columns = ['mpg', 'cylinders', 'desplacement', 'horsepower', 'weight', 'acceleration', 'model year', 'origin', 'name']

fig = plt.figure(figsize = (15, 5)) # fig 크기
ax1 = fig.add_subplot(1,2,1) # 위
ax2 = fig.add_subplot(1,2,2) # 아래

ax1.boxplot(x=[df[df['origin']==1]['mpg'],
              df[df['origin']==2]['mpg'],
              df[df['origin']==3]['mpg']],
            labels = ['USA','EU', 'JAPAN'])
# 가로               
ax2.boxplot(x=[df[df['origin']==1]['mpg'],
              df[df['origin']==2]['mpg'],
              df[df['origin']==3]['mpg']],
            labels = ['USA','EU', 'JAPAN'], vert = False)               
ax1.set_title('제조국가별 연비 분포(수직 박스 플롯)')
ax2.set_title('제조국가별 연비 분포(수직 박스 플롯)')               
plt.show()

 

 

반응형

+ Recent posts