목록CS/데이터시각화 (10)
꺼내먹는지식 준
우리는 주로 Matplotlib을 많이 사용한다. 하지만, 통계 시각화에서는 matplotlib을 기반으로 한 Seaborn 을 많이 사용한다. 파이썬 머신러닝, 데이터분석 시 한번은 꼭 사용하니 공부해보자. 쉬운 문법, 깔끔한 디자인이 장점이다. 해당 버전은 0.11 이다. 설치는 다음과 같이 하자. pip install seaborn == 0.11 sns 는 seaborn이라는 이름을 가진 유명 배우에서 따온 joke import seaborn as sns 시각화 목적과 방법에 따라 API 를 분류해서 제공한다. 다음의 API 가 있다. Categorical API Distribution API Relational API Regression API Multiples API Theme API 감이 오는..
1. 배경색 조정 가능 fig, ax = plt.subplots() fig.set_facecolor('lightgray') plt.show() 2. ShareX ShareY 즉, x,y 축 통일 가능 fig = plt.figure() ax1 = fig.add_subplot(121) ax1.plot([1, 2, 3], [1, 4, 9]) ax2 = fig.add_subplot(122, sharey=ax1) ax2.plot([1, 2, 3], [1, 2, 3]) plt.show() #fig, axes = plt.subplots(1, 2, sharey=True) 애초에 이렇게 선언도 가능 3. 다른 글에서 flatten으로 axes 접근을 1D 로 할 수 있다고 했는데 squeeze로 반대 조정이 가능 즉, ..
Visual representation이 줄 수 없는 여러 설명들을 text가 추가 설명 잘못된 전달에서 생기는 오해를 방지 1) Title: 가장 큰 주제 (전체 figure, subplot figure, 위치) 2) Label: 축에 해당하는 데이터 정보 제공 (x축, y축을 설명하는 정보, 축과는 다른 정보) 3) Tick Label: 축에 눈금을 사용하여 스케일 정보를 추가 (큰 축, 작은 축 라벨 메이저 마이너 .. ) 4) Legend: 한 그래프에서 두가지 이상의 데이터를 분류하기 위해 보조적인 정보를 차트내에서 전달 5) Annotation(Text): 그 외의 시각화에 대한 설명을 추가 (거의 유사 Annotation은 화살표 추가 가능) fig, ax = plt.subplots() fi..
위치와 색은 가장 효과적인 채널 구분 위치는 시각화 방법에 따라 결정, 색은 직접 골라야 한다. 색이 가자고 있는 의미는 각각 다르다. (기업, 정당 색상, 온도, 등)좋은 색과 색 배치는 시각적으로 훌룡하다. 가장 중요한 것은 인사이트 전달이다. Color Palette 범주형(Discrete, Qualitative): 독립된 데이터를 표현하기 위한 독립된 색상 최대 10가지 색상 색의 차이로 구분하는 것이 특징 (채도 명도를 개별적 조정은 지양) # Group to Number groups = sorted(student['race/ethnicity'].unique()) gton = dict(zip(groups , range(5))) # Group에 따라 색 0, 1, 2, 3, 4 student['..
기본적 Grid 는 축과 평행한 선을 사용하여 거리 및 갑 정보를 보조적으로 제공 Default Grid 색(color): 무채색 (다른 표현 방해 안하도록) 순서(zorder): Layer 순서 맨 아래 큰 격자/ 세부 격자(which='major', 'minor', 'both') X축 Y축(axis = 'x','y','both') which : major ticks, minor ticks axis : x, y linestyle linewidth zorder np.random.seed(970725) x = np.random.rand(20) y = np.random.rand(20) fig = plt.figure(figsize=(16, 7)) ax = fig.add_subplot(1, 1, 1, aspec..
Scatter plot(산점도)은 점을 사용하여 두 feature 간의 관계를 알기 위해 사용하는 그래프 직교 좌표계에서 x축/ y축에 feature값을 매핑하여 사용 .scatter() 사용 예시) Scatter Plot 요소 1) 색 (color) 2) 모양 (marker) 3) 크기 (size) 점 자체는 2차원에서 그려지지만, 색 모양 크기를 사용하여 5 ~ 차원의 데이터도 그릴 수 있다. 코드 구현 fig = plt.figure(figsize=(7, 7)) ax = fig.add_subplot(111, aspect=1) np.random.seed(970725) x = np.random.rand(20) y = np.random.rand(20) s = np.arange(20) * 20 ax.scat..
Line Plot(꺾은 선 그래프, 선 그래프, line chart, line graph)은 연속적으로 변화하는 값을 순서대로 점으로 나타내고, 이를 선으로 연결한 그래프이다. 시간/ 순서에 대한 변화에 적합하여 추세 살피기에 용이 (시계열 특화) 신기하게 .line이 아니라 .plot() (가장 기본적이라 그런 듯 하다.) 코드 구현 fig = plt.figure(figsize=(5, 5)) ax = fig.add_subplot(111, aspect=1) #aspect 가로 세로 비율 값 n = 1000 x = np.sin(np.linspace(0, 2*np.pi, n)) y = np.cos(np.linspace(0, 2*np.pi, n)) ax.plot(x, y) plt.show() aspect는 가..
Bar plot(bar chart, bar graph)은 직사각형 막대로 데이터 값을 표현하는 차트 혹은 그래프이다. 범주에 따른 수치 값 비교에 적합 - 개별, 그룹 비교 모두 가능 수직 : x 축에 범주, y 축에 값 표기 (.bar()) 수평 : y 축에 범주, x 축에 값 표기 (.barh()) 범주가 너무 많아지면 한 화면 내에서 표현이 어렵기에, 세로 형 표현을 사용하기도 한다. 다만, 익숙한 vertical 수직을 기본으로 사용 import numpy as np import pandas as pd fig, axes = plt.subplots(1, 2, figsize=(12, 7)) x = list('ABCDE') y = np.array([1, 2, 3, 4, 5]) axes[0].bar(x,..
Matplotlib 은 필요할 때 그때 그때 찾아 사용하다 보니 매번 익숙해지지 못하고, 많은 시간이 소요되었다. 이 시간을 통해 Matplotlib 을 잡고가자. 본 게시글은 기본 개념, 전체적인 그림을 그리는 게시글이다. Python에서 활발하게 사용되는 시각화 라이브러리 대부분의 시각화, 데이터 분석, 머신러닝 딥러닝은 python에서 이루지기에, 습득이 필수 numpy와 scipy를 베이스로 하여 여러 라이브러리와 호환성이 높다. 여러 시각화 방법론 제공 1) 막대 그래프 2) 선 그래프 3) 산점도 4) ETC 그 외에도 Seaborn, Plotly, Bokeh, Altair 등의 라이브러리 존재 그러나 Matplotlib의 범용성이 제일 럽고, base가 된다. import numpy as n..
데이터의 시각화를 통해 전달하고자 하는 바를 시각적인 방법으로 직관적 전달 데이터 셋의 종류 1) 정형 데이터 2) 시계열 데이터 3) 지리 데이터 4) 관계형 데이터 5) 계층적 데이터 6) 다양한 비정형 데이터 데이터 종류 1) 수치형 - 연속형 - 이산형 2) 범주형 - 명목형 - 순서형 시각화 이해 점, 선, 면으로 이루어진 데이터 시각화 각 마크를 변경할 수 있는 요소들 전주의적 속성 주의를 주지 않아도 인지하게 되는 요소 (색상은 활발하게 이용되는 특성) 동시에 사용하면 인지하기 어려울 수 있음 (적절하게 사용하여 시각적 분리 )