Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 티스토리
- Blog
- MATLAB
- 텐서플로
- 시각화
- Python
- 통계학
- 한빛미디어
- 블로그
- SQL
- Tistory
- Pandas
- Google Analytics
- 매틀랩
- 서평단
- 딥러닝
- python visualization
- 독후감
- Visualization
- MySQL
- 파이썬
- 리눅스
- tensorflow
- Linux
- Ga
- 월간결산
- 한빛미디어서평단
- 서평
- matplotlib
- 파이썬 시각화
Archives
- Today
- Total
pbj0812의 코딩 일기
[통계학] SkillMetrics(python) 을 통한 테일러 다이어그램 그리기 본문
0. 목표
- SkillMetrics(python) 을 통한 테일러 다이어그램 그리기(예제 따라하기)
1. 설치
pip install SkillMetrics
- 기본 사용법
import skill_metrics as sm
sm.taylor_diagram()
- 옵션(링크)
2. 데이터 다운로드
1) github.com/PeterRochford/SkillMetrics/blob/master/Examples/taylor_data.pkl 에서 다운로드
2) 데이터 확인
- 실습 PC 에서는 인코딩 문제로 아래와 같이 코드를 짜야 파일을 열 수 있음
- 해양 or 기상 관련 데이터로 보임
import pickle
class Container(object):
def __init__(self, pred1, pred2, pred3, ref):
self.pred1 = pred1
self.pred2 = pred2
self.pred3 = pred3
self.ref = ref
with open('/Users/pbj0812/Desktop/jupyter_notebook/data/taylor_data.pkl', 'rb') as f:
data = pickle.load(f, encoding="latin1")
- data 에는 pred1, pred2, pred3, ref 가 아래와 같은 json을 닮은 형태로 저장되어 있음
3. 실습(원본 코드)
1) library 호출
import matplotlib.pyplot as plt
from matplotlib import rcParams
import numpy as np
import pickle
import skill_metrics as sm
from sys import version_info
2) 하단의 주석 처리된 부분은 원본
def load_obj(name):
# Load object from file in pickle format
suffix = 'pkl'
with open(name + '.' + suffix, 'rb') as f:
return pickle.load(f, encoding="latin1")
#with open(name + '.' + suffix, 'rb') as f:
#return pickle.load(f) # Python2 succeeds
3) 데이터 분리
- 해당 부분을 실행하지 않을 경우 아랫 부분에서 에러 발생
class Container(object):
def __init__(self, pred1, pred2, pred3, ref):
self.pred1 = pred1
self.pred2 = pred2
self.pred3 = pred3
self.ref = ref
4) 실행
if __name__ == '__main__':
# 플롯 조정
rcParams["figure.figsize"] = [8.0, 6.4]
rcParams['lines.linewidth'] = 1 # line width for plots
rcParams.update({'font.size': 12}) # font size of axes text
# 열려있는 그림 창 종료
plt.close('all')
# 데이터 확보
data = load_obj('/Users/pbj0812/Desktop/jupyter_notebook/data/taylor_data')
# Calculate statistics for Taylor diagram
# The first array element (e.g. taylor_stats1[0]) corresponds to the
# reference series while the second and subsequent elements
# (e.g. taylor_stats1[1:]) are those for the predicted series.
taylor_stats1 = sm.taylor_statistics(data.pred1,data.ref,'data')
taylor_stats2 = sm.taylor_statistics(data.pred2,data.ref,'data')
taylor_stats3 = sm.taylor_statistics(data.pred3,data.ref,'data')
# Store statistics in arrays
sdev = np.array([taylor_stats1['sdev'][0], taylor_stats1['sdev'][1],
taylor_stats2['sdev'][1], taylor_stats3['sdev'][1]])
crmsd = np.array([taylor_stats1['crmsd'][0], taylor_stats1['crmsd'][1],
taylor_stats2['crmsd'][1], taylor_stats3['crmsd'][1]])
ccoef = np.array([taylor_stats1['ccoef'][0], taylor_stats1['ccoef'][1],
taylor_stats2['ccoef'][1], taylor_stats3['ccoef'][1]])
sm.taylor_diagram(sdev,crmsd,ccoef)
# 그림 저장
plt.savefig('taylor1.png')
# Show plot
plt.show()
5) 결과
3. 참고
'Science > 통계학' 카테고리의 다른 글
[통계학] PYTHON 으로 t-test 구현하기 (0) | 2022.07.24 |
---|---|
[통계학] 정규분포 그래프 그리기 (0) | 2021.08.08 |
[통계학] PYTHON 을 통한 AUPRC 구현 및 sklearn 과 비교 (3) | 2020.11.12 |
[통계학] PYTHON 을 통한 P-R 곡선 구현 (0) | 2020.11.12 |
[통계학] PYTHON 을 이용한 AUC 계산 (0) | 2020.11.10 |
Comments