분석 Python/Visualization(47)
-
Matplotlib 한글폰트 사용하는 전체 또는 개별 적용하는 방법
나눔 고딕이 설치되어있다는 가정하에 진행한 것입니다. import matplotlib as mpl import matplotlib.pyplot as plt print ('설정 파일 위치: ', mpl.matplotlib_fname()) import matplotlib.font_manager as fm f = [f.name for f in fm.fontManager.ttflist] [(f.name, f.fname) for f in fm.fontManager.ttflist if 'Nanum' in f.name] 일단 설치가 되어있다는 가정하에, 모든 노트북에 적용하고 싶으면 위에 설정 파일 위치에 가서 수정해야 함. 만약 모든 노트북에 적용하고 싶다면? rcParams를 설정 파일에 직접 적어주면 모든 노트..
2020.04.03 -
subplotting을 위한 plot 함수 만들어서 코드 간단하게 하기
광고 한번만 눌러주세요 ㅎㅎ 블로그 운영에 큰 힘이 됩니다. 여러가지 그림을 한꺼번에 표현하고 싶을 때, 각각의 그림에 대해서 그림을 그리고, 이름을 부여고하고, y축 x축 변경해줘야 할 것이 많다. 하지만 이런 것을 반복하다보면, 코드가 너무 장황해지고 길어지는 것을 경험하였다. 그래서 이런 것을 보다 그림을 표현할 때는 간단하게 하고 싶기 때문에, 만들어봤다. 유용하다 생각하시면, 더 업그레이드 하셔서 블로그나 깃헙 같은 곳에 공유해주세요 :) import numpy as np , pickle import matplotlib.pyplot as plt with open("./../02/resut.pkl", "rb") as rb : result = pickle.load(rb) def subplotting..
2020.03.29 -
파이썬 subplots 좀 더 잘 사용해보기
광고 한번만 눌러주세요 ㅎㅎ 블로그 운영에 큰 힘이 됩니다. 파이썬에서 한 Figure에서 여러 개로 쪼개서 다양한 그림을 넣고 싶은 경우가 많다. 보통 그래서 필자는 주로 격자 방식으로 한 그림에는 한 주제만 나오게 한다. 그래서 필자가 좋아하는 방법은 평평하게 해 놓고 격자마다 하나씩 나오게 하는 것이다. import matplotlib.pyplot as plt from matplotlib.gridspec import GridSpec import numpy as np import pickle with open("./../02/resut.pkl", "rb") as rb : result = pickle.load(rb) 하지만 위에 그림에서 왼쪽을 보게 되면, 스케일 자체가 차이가 나서, 실제로 제대로 된..
2020.03.29 -
[ Python ] (범례 순서 변경) change legend order
legend의 순서를 조정 바꾸고 싶을 때가 있다. 쌍으로 묶고 싶은 것들이 떨어져 있었다. 이 문제를 해결하기 위해서 다음과 같은 방법으로 해결했다. labels에서 A A 끼리 B , B 끼리... 묶고 싶었다. legend = plt.legend(handles=handles, labels=labels, ncol=5, bbox_to_anchor=(0.9, 1.0), labelspacing = 0.1, columnspacing = 0.5, fancybox=True, shadow=True,fontsize=14 ) frame = legend.get_frame() frame.set_linewidth(0.0) plt.show() 하지만 그냥 하면 저렇게 떨어지게 된다. 그래서 label을 가져와서 다음과 같은..
2020.02.06 -
[ Python ] density plot과 count ratio plot 그리기
광고 한 번만 눌러주세요 블로그 운영에 큰 힘이 됩니다! R에서는 ggplot이라는 함수를 사용하면 쉽게 group별로 비율 막대그래프를 시각화한다. 그러나 Python은 R과 다르게 Category 변수에 대해서 비율 시각화를 하는 것을 따로 제공하지 않는 것 같다. ## R ggplot(mtcars,aes(x=factor(cyl),fill=factor(gear)))+ geom_bar(position="fill") 그래서 이번에는 저번에 만들었던 비율 막대 그래포와 Density Plot을 같이 그려보는 것을 하였다. 하는 방법은 위에 R처럼 group별로 하기 위해서 pandas에서 groupby를 사용하고 그다음에 group별로 value_counts로 비율을 계산한 후 바로 bar plot으로 그..
2020.02.01 -
[ Python ] 유용한 시각화 함수들 모음 (boxplot, scatter plot, plotly.express, etc)
https://towardsdatascience.com/four-useful-functions-for-exploring-data-in-python-33b53288cdd8 Four Useful Functions For Exploring Data in Python Exploring and Visualizing Data in Python towardsdatascience.com 파이썬은 시각화 함수가 seaborn 같은 것이 있지만, R의 ggplot에 비해 먼가 아쉬운 점이 있는 것 같다. 그래서 먼가 유용한 함수들을 따로 만들어 넣고 사용해야 한다. 위의 글에서는 시각화를 하는 데 있어서 유용한 함수들을 몇 개 소개하고 있다. import pandas as pd df = pd.read_csv('./../...
2020.01.14 -
[ Python ] 시각화 여러 개의 그래프 형태 - 1
그림을 위에서는 2개로 나 누가 밑에는 그냥 1개의 직사각형으로 만들고 싶어서 찾아보고 공유한다. 아래 그림에서는 타겟별 train 확률 값 box plot과 test 확률 값 box plot 그리고 학습 곡선을 그리고 싶었다. fig , axes = plt.subplots(nrows=2 ,ncols=2, figsize=(20,10) ) plt.subplots_adjust(left=0.05, bottom=0.01, right=0.99, top=0.99, wspace=None, hspace=0.2) ax = axes.flatten() sns.boxplot(x="t", y="prob", data=DD , ax = ax[0]) ax[0].set_title("train : {:.3f}".format(AUC) ,..
2020.01.12 -
[ Python ] 이미지들을 동영상으로 만들기 (images -> mp4)
파이썬 이미지를 동영상 파일로 바꾸는 방법은 여러 개가 있다. ## png -> mp4 os.system(f'ffmpeg -r 30 -i ims/2/a/2a.*.png' f' -crf 30 ims/2/a/2a.mp4') ## png -> gif os.system('convert -delay 15 -loop 0 ims/2/a/2a.*.png ims/2/a/2a.gif') 저런 것은 linux를 이용하여서 하는 작업인데, 이번에는 파이썬에서 opencv를 이용해서 이미지 파일들을 좀 더 고화질로 영상을 만들어보는 코드가 있어서 변형해서 공유한다. import re path = "ims/2/a" paths = [os.path.join(path , i ) for i in os.listdir(path) if re..
2020.01.11 -
[Python] tqdm nested progress bar 해보기
분석하다보면 Loop를 돌릴 일이 많고, 얼마나 진행했는지 보고 싶을 때가 있다. nested 형태로 되어있는 형태에서 돌릴 때 폼이 예제다. jupyter notebook 버전과 command 버전 2개를 소개한다. 추가로 progress bar에 색깔을 넣어봤다. print를 중간에 하면 폼이 깨지기 때문에 보고자 하는 것은 log로 보내버렸다. Command Version import time import sys from tqdm import trange from IPython.display import clear_output import random from colorama import Fore import logging import logging.handlers log = logging.getL..
2020.01.04 -
[ Python ] 2개 모델 확률값 사후 해석 시각화 그려보기
2개의 모델에 대해서 행별로 확률 값 시각화해보기 그림의 목적 : 2개의 알고리즘이 각 row별로 어떻게 예측하는 것을 통해 헷갈려하는 행이 얼마나 많은지 한 개의 행에 대해서 2개의 모델이 다르게 예측하는지 확인하기 위해 EX) 한 행에 대해서 catboost 모델은 비 올 확률 0.9 lightgbm 모델은 0.1과 같이 상이하게 예측하는지 확인하기 위해 아래 흰색 박스 부분이 서로 다르게 예측하는 부분 plt.style.use('dark_background') fig , ax = plt.subplots(1 , figsize = (15,15)) classes = ["Not Rain", "Rain"] plt.scatter(lgb_prob , ae_catprob[:,1].ravel() , c = caty..
2020.01.04 -
[ Python ] matplotlib tick 값 수정하기 (dir, help)
도움이 되셨다면, 광고 한번만 눌러주세요. 블로그 관리에 큰 힘이 됩니다. 파이썬으로 시각화할 때 x 축이나 y축에 숫자가 아닌 다른 값을 넣고 싶을 때가 있다. R에서는 ggplot이 있어서 엄청 쉽게 할 수 있다 . 파이썬도 seaborn이나 plotly 같은 패키지를 써도 쉽게 할 수 있긴 하겠지만, 필자는 간단하게 해볼 때 matplotlib 라이브러리를 자주 쓰므로 궁금해서 찾아서 해봤다. 아래 그림에서는 tick을 수정할 껀데, font를 크게 하거나 작게 하거나 회전을 주거나 아니면 특정 값이면 색깔을 바꾸는 것을 시도했다. 개인적인 생각으로, 저렇게 특정 부분을 수정하는 것은 seaborn이나 plotly 보다는 matplotlib가 더 편하게 할 것이라고 생각한다. 이것 외에도 아래 코드..
2019.12.18 -
[ Python ] seaborn catplot 을 활용하여 시각화하기
도움이 되셨다면, 광고 한번만 눌러주세요. 블로그 관리에 큰 힘이 됩니다 ^^ import seaborn as sns import os , pandas as pd import matplotlib.pyplot as plt import re 여러 개의 데이터를 합치는 작업이 필요해서 진행 folder = "Weather_Aus_Vis_" folder = "Income_Vis_" folder = "Bank_Vis_" folder = "Churn_Vis_" Income_uni = ["9", "16" , "7", "15", "6", "5", "2", "41"] Churn_uni = ["51", "3" , "2","2"] Bank_uni = ["12","3","4","2","2","2","3","12","4"] W..
2019.12.01