출처: https://astrocosmos.tistory.com/202 [ASTROCOSMOS:티스토리] '데이터 - 시각화' 카테고리의 글 목록 :: 하나둘셋넷
728x90

시각화 matplotlib] "barh 내림차순 정렬" plt.barh, transpose, sort_values

 

print('='*100)
print('원본 데이터')
print('='*100)
Cost_Guard_reason_2017 = Cost_Guard_reason.iloc[[2],:].drop('연도', axis = 1)
display(Cost_Guard_reason_2017)

print('='*100)
print('transpose를 진행한다.')
print('='*100)
Cost_Guard_reason_2017_trans = Cost_Guard_reason_2017.transpose()
display(Cost_Guard_reason_2017_trans)

print('='*100)
print('오름차순 정렬을 진행한다.')
print('='*100)
Cost_Guard_reason_2017_trans_sorted = Cost_Guard_reason_2017_trans.sort_values(by=2, ascending = True)
display(Cost_Guard_reason_2017_trans_sorted)

 

 

plt.barh(y = Cost_Guard_reason_2017_trans_sorted.index, width = Cost_Guard_reason_2017_trans_sorted[2].values)
728x90
728x90

시각화 matplotlib] plt.bar, plt.barh

 

plt.bar

 

import matplotlib.pyplot as plt
%config InlineBackend.figure_format='retina'

plt.figure(figsize=(6,4))
plt.bar(x=tmp['AgeGrp'], height=tmp['Survived'])
plt.xlabel('AgeGrp')
plt.ylabel('Survived')
plt.ylim(0,1)
plt.show()

 

 

plt.bar, plt.xticks(rotation = 숫자)

 

plt.figure(figsize = [20,15])
plt.bar(x = df_participate['월별'], height = df_participate['참가자 수'])
plt.xticks(rotation =45 )
plt.show()

 

plt.barh

 

gongong

 

 

import pandas as pd
import matplotlib.pyplot as plt
gongong = pd.read_csv('한국건강가정진흥원_다문화가족 이중언어코치 지역별 현황_20220831.csv', encoding = 'CP949')

# 한글 폰트를 설정하자
plt.rc('font', family='Malgun Gothic') # For Windows
plt.rc('axes', unicode_minus=False)
plt.rcParams['font.family']

# 인덱스가 한글이기 때문에 가로 막대로 출력하는 것이 더 가시적이다.
plt.barh(y=gongong['지역'].astype(str), width = gongong['합계 : 이중언어코치 인원(명)'], color = ['C4'], alpha = 0.7, 
         label = ' 인원(명)')
plt.xticks(list(range(0,21,2)))
plt.title('이중언어코치의 수')


plt.legend()
plt.show()

 

 

728x90
728x90

시각화 matplotlib, seaborn 범주형] countplot, bar chart, pie chart

 

seaborn countplot

 

# sns.countplot(x=titanic['Pclass'])
sns.countplot(x='Pclass', data=titanic)
# sns.countplot(y='Pclass', data=titanic)
plt.grid()
plt.show()

 

막대 그래프 시각화, plot(kind='bar')

train.groupby('Pclass').mean()['Survived'].plot(kind='bar')

 

 

pie chart

 

plt.pie(temp.values, labels = temp.index, autopct = '%.2f%%',
        startangle=90, counterclock=False,
        explode = [0.05, 0.05, 0.05], shadow=True)
plt.show()

 

 

728x90
728x90

기본 차트 그리기 plt.plot(1차원 값)

 

 

# 차트 그리기
plt.plot(data['Temp'])

# 화면에 보여주기
plt.show()

 

x축, y축 지정하고 그래프 그리기

 

import pandas as pd
import matplotlib.pyplot as plt
plt.rc('font', family = 'Malgun Gothic')
plt.rcParams['font.family']

plt.plot(df['timestamp'], df['price(원/kg)])
plt.xticks(rotation=70)

plt.ylabel('price(원/kg)')
plt.show()

 

# 방법 2
plt.plot('Date', 'Temp', data = data)
plt.show()

 

 

시각화 axhline

train.groupby('hour').mean()['hour_bef_temperature'].plot()
plt.axhline(train.groupby('hour').mean()['hour_bef_temperature'].mean())

 

차트 꾸미기

plt.plot(data['Date'], data['Ozone'])

plt.xticks(rotation = 30)       # x축 값 꾸미기 : 방향을 30도 틀어서
plt.xlabel('Date')              # x축 이름 지정
plt.ylabel('Ozone')             # y축 이름 지정
plt.title('Daily Airquality')   # 타이틀

plt.show()

 

 

라인스타일 조정

 

plt.plot(data['Date'], data['Ozone']
         ,color='green'                # 칼러
         , linestyle='dotted'          # 라인스타일
         , marker='o')                 # 값 마커(모양)

plt.xlabel('Date') 
plt.ylabel('Ozone')
plt.title('Daily Airquality')
plt.xticks(rotation=45)

plt.show()

 

 

그래프 겹쳐서 그리기

 

# 첫번째 그래프
plt.plot(data['Date'], data['Ozone'], color='green', linestyle='dotted', marker='o')
# 두번째 그래프
plt.plot(data['Date'], data['Temp'], color='r', linestyle='-', marker='s')

plt.xlabel('Date') 
plt.ylabel('Ozone')
plt.title('Daily Airquality')
plt.xticks(rotation=45)

# 위 그래프와 설정 한꺼번에 보여주기
plt.show()

 

 

범례, 그리드 추가

 

plt.plot(data['Date'], data['Ozone'], label = 'Ozone')  # label = : 범례추가를 위한 레이블값
plt.plot(data['Date'], data['Temp'], label = 'Temp')

plt.legend(loc = 'upper right')    # 레이블 표시하기. loc = : 위치
plt.grid()
plt.xticks(rotation=45)
plt.show()

 

 

여러 개 차트 그리기, 방식 2

 

data.plot(x = 'Date', y = ['Temp','Ozone']
          , title = 'Daily Airquality')
plt.grid()
plt.show()

 

 

축 범위 조정

 

plt.plot(data['Ozone'])

# plt.ylim(0, 100)
# plt.xlim(0, 10)
plt.grid()
plt.show()

 

 

그래프 수직선, 수평선 추가

 

plt.plot(data['Ozone'])

plt.axhline(40, color = 'grey', linestyle = '--')
plt.axvline(10, color = 'red', linestyle = '--')
plt.show()

 

 

 

그래프에 텍스트 추가

 

plt.plot(data['Ozone'])

plt.axhline(40, color = 'grey', linestyle = '--')
plt.axvline(10, color = 'red', linestyle = '--')

plt.text(5, 41, '40')
plt.text(10.1, 20, '10')

plt.show()

 

 

여러 그래프 나눠서 그리기

 

plt.figure(figsize = (12,8))
plt.subplot(3,1,1)
plt.plot('Date', 'Temp', data = data)
plt.grid()

plt.subplot(3,1,2)
plt.plot('Date', 'Wind', data = data)

plt.subplot(3,1,3)
plt.plot('Date', 'Ozone', data = data)
plt.grid()
plt.ylabel('Ozone')

plt.tight_layout() # 그래프간 간격을 적절히 맞추기
plt.show()

 

 

 

 

하나의 데이터프레임에서 여러 개의 차트 그리기

 

# 남녀 인구 변화
plt.plot(pop_test[['male','female']])
plt.show()

 

728x90
728x90

한글 입력, 경고문구 무시, 경로, 목록

import matplotlib.pyplot as plt

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

 

import warnings
warnings.filterwarnings(action='ignore')

 

import os
os.getcwd()
os.listdir()

 

728x90
728x90

crosstab

pd.crosstab([output['clust']], output['상품타입'],margins=True)

 

728x90
728x90

시각화 matplotlib] "hist, boxplot, plot 그리기", kind='bar', legend(loc='center'), ylabel, grid

 

데이터프레임.plt( kind = 'bar' ) 이용

# 모델별 결과 시각화
# pandas의 plot 함수을 사용하여 AI모델 별 accuracy_score, f1_score 수직 그래프 시각화 합니다.
# grid를 추가해 주세요.
# legend를 표시하고, 위치는 center 입니다.
import matplotlib.pyplot as plt
result_comp.plot(kind= 'bar')
plt.legend(loc= 'center'  )
plt.grid()
plt.show()

 

시각화 matplotlib  
* 히스토그램 작성

plt.hist(데이터프레임.컬럼명, bins = 숫자, edgecolor = '색상명')


plt.title('제목')


plt.ylabel('y 라벨명')


plt.show()
Boxplot 그리기

plot.boxplot(데이터프레임['컬럼명'])


옆으로 그리려면,


plt.boxplot(데이터프레임['컬럼명'], vert=False)

plt.grid()


plt.show()


plot 차트 이용

plt.plot(데이터프레임['컬럼명'])
plot 차트 점 찍기

plt.figure( figsize= (20,3))
plt.plot(acc['accuracy_score'], marker ='.' )
plt.xlabel('train_features')
plt.ylabel('accuracy')
plt.grid()
plt.show()

 

728x90
728x90

내용

  • 산포도
  • pairplot을 통한 시각화
  • jointplot
  • regplot 이용

 

1. 산포도

sns.scatterplot(x='컬럼명1', y='컬럼명2', data=데이터프레임)

 

 

2. pairplot을 통한 시각화

* 숫자형 변수들에 대한 산점도를 한꺼번에 그린다.

sns.pairplot(데이터프레임, kind = 'reg')

plt.show()

3. jointplot

sns.jointplot(x='컬럼명1', y='컬럼명2', data = 데이터프레임)

plt.show()

 

4. regplot 이용

sns.replot(x='컬럼명1', y='컬럼명2', data=데이터프레임)

plt.show()

 

 

728x90
728x90

내용

  • countplot 이용
  • 기초 통계량 산출 value_counts() $ value_counts(normalize = True)

 

1. countplot 이용

sns.countplot(y='컬럼명', data = 데이터프레임명)

plt.grid()

plt.show()

 

가로로 그리려면,

sns.countplot(x='컬럼명', data=데이터프레임)

 

 

2. 기초 통계량 산출 value_counts() $ value_counts(normalize = True)

데이터프레임['컬럼명'].value_counts()

데이터프레임['컬럼명'].value_counts(normalize=True)

 

 

3. pie chart 이용

plt.pie( 데이터프레임['컬럼명'].values, labels = 데이터프레임['컬럼명'].index(), autopct = '%.2f%%' )



plt.pie( 데이터프레임['컬럼명'].vauels, labels = 데이터프레임['컬럼명'].index(), autopct = '%.2f%%', startangle = 90, counterclock=False)



pt.pie( 데이터프레임['컬럼명'].values, labels = 데이터프레임['컬럼명'].index(), autopct = '%.2f%%', startangle = 90, counterclock = False, explode = [0.05, 0.05, 0.05],  shadow = True )
728x90

+ Recent posts