티스토리 뷰

반응형


import pandas as pd

import numpy as np

from pandas import Series, DataFrame

from numpy import nan as NA

import matplotlib.pyplot as plt

%matplotlib qt



#. 막대 그래프(Bar Plot) 그리기

 - 각 로우별 막대 그래프 출력

 - 각 컬럼이름이 범례로 지정


df1 = pd.read_csv('plot_test.csv')


df1.index = ['월','화','수','목','금','토','일']

df1.columns.names = ['지점']

df1.index.names = ['요일']


fig, ax = plt.subplots(1,2)

df1.plot(kind='bar', ax=ax[0])    # bar(수직막대)

df1.plot(kind='barh', ax=ax[1])   # barh(수평막대)





#. Q1

# cctv 데이터를 불러오고

cctv = pd.read_csv('cctv.csv', encoding='cp949')

cctv['rate'] = round(cctv['검거'] / cctv['발생']*100,2)



각 구별 검거율의 평균이 가장 낮은 구의 각 년도별 검거율을 막대그래프로 표현

data = cctv.pivot_table(index='', columns='년도', values='rate')


data.loc[data.mean(1).idxmin()].plot(kind='bar', title='관악구(검거율 평균이 가장 낮은 구) 검거율', ylim=[0,100])

plt.xticks(rotation=30)




#. Q2

# employment 데이터를 불러온 후

emp = pd.read_csv('employment.csv', encoding='cp949',na_values='-', index_col=0)


col1 = emp.columns.str[:4]    # 컬럼 이름 정제

col2 = emp.iloc[0].str.split(' ').str.get(0)    # 첫 번째 행 정제 후 제거

emp = emp.iloc[1:]

 

emp.columns = [col1, col2]         # 정제한 컬럼을 컬럼 이름으로

emp.columns.names = ['년도','구분']

 

emp = emp.applymap(lambda x : str(x).replace(',','')).astype('float')   # 천 단위 구분기호 제거


 

# 1) 각 근로자별로 월급여액의 년도별 증감 추이를 그래프로 ( row:년도, colums=근로자)

data1 = emp.xs('월급여액', level=1, axis=1).T


plt.rc('font', family='Malgun Gothic')

data1.index = data1.index.astype('int')   # 대소비교 가능한 정수형으로 변환해야 축 범위로 자동 지정


data1.plot(ylim=[0,4000])


# 2) 각 근로자별 초과근로시간의 평균을 구하고 막대 그래프로 비교할 수 있도록

data2 = emp.xs('초과근로시간', level=1, axis=1).dropna().mean(1)

data2.plot(kind = 'bar')

plt.xticks(rotation=50)




고: KIC 캠퍼스 머신러닝기반의 빅데이터분석 양성과정

반응형

'Python > Visualize' 카테고리의 다른 글

[Python 시각화] 선 그래프 그리기 (matplotlib API)  (6) 2019.02.18
댓글
최근에 올라온 글
최근에 달린 댓글
링크
Total
Today
Yesterday