ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python Visualization Tool 생태계
    IT의 이해 2019. 11. 14. 20:50

    판다의 플롯팅 기능
    보셨다시피, Mattplotlib는 사실 상당히 낮은 수준의 도구 입니다. 데이터 디스플레이,범례, 제목, 눈금 레이블 및 기타 주석을 사용하여 플롯을 조합한다. 그 이유의 일부는 많은 경우에 완전한 플롯을 만드는 데 필요한 데이터가 많은 물체에 퍼지기 때문이다. 팬더에는 행 라벨, 컬럼 라벨, 그리고 아마도 그룹화 정보가 있다. 이것은 일반적으로 많은 matplotlib 코드를 필요로 하는 많은 종류의 완전한 형태의 플롯이 한 두 개의 간결한 문장으로 표현될 수 있다는 것을 의미한다. 따라서 판다는 데이터프레임 객체에서 데이터가 어떻게 구성되는지를 활용하는 표준 시각화를 만들기 위한 높은 수준의 플롯 방법을 점점 더 많이 가지고 있다. 이 글을 쓰면서 판다의 음모 기능은 상당히 많은 일을 겪고 있다. 2012년 Google Summer of Code 프로그램의 일환으로, 한 학생이 기능을 추가하고 인터페이스를 더 일관되고 사용할 수 있도록 하기 위해 풀타임으로 일하고 있다. 따라서, 이 코드는 이 책의 다른 것들보다 더 빨리 시대에 뒤떨어질 수 있다. 온라인 판다의 문서화는 그 행사에서 최고의 자료가 될 것이다. 판다의 음모 방법은 대부분 선택적 축 매개변수를 수용하는데, 이 매개변수는 matplotlib 하위 플롯 물체일 수 있다. 이렇게 하면 그리드 레이아웃에서 하위 그림을 보다 유연하게 배치할 수 있다. matplotlib API의 뒷부분에 더 많은 내용이 있을 것이다. DataFrame의 플롯 방법은 각 열을 동일한 하위 플롯에 다른 선으로 표시하여 자동으로 범례를 작성한다.히스토그램은 값 빈도가 불명확하게 표시되는 막대 그래프의 일종이다. 데이터 포인트는 분리된 균일한 간격의 빈으로 분할되며, 각 빈의 데이터 포인트 수는 표시된다. 이전 데이터를 사용하여 시리즈에서 히스토그램을 사용하여 전체 청구서의 팁 백분율에 대한 히스토그램을 만들 수 있다. 관련 플롯 유형은 밀도 그림으로 관측 데이터를 생성했을 수 있는 연속 확률 분포의 추정치를 계산하여 형성한다. 통상적인 절차는 이 분포를 커널의 혼합물, 즉 일반적인 (가우스) 분포와 같은 단순한 분포로 근사하는 것이다. 따라서 밀도도는 KDE그림이라고도 한다. type='kde'와 함께 플롯을 사용하면 표준 정규 혼합물 KDE를 사용하여 밀도 그림을 만든다. 이 두 개의 플롯 유형은 종종 함께 플롯된다; 히스토그램은 위에 표시된 커널 밀도 추정치와 함께 정규화된 형태로 표시된다. 예를 들어, 두 개의 서로 다른 표준 정규 분포로부터의 추첨으로 구성된 이항 분포를 고려한다.

    Python Visualization Tool 생태계

    오픈 소스에서 흔히 볼 수 있듯이, 파이썬(목록할 수 없을 만큼 많은)에서 그래픽을 만들기 위한 옵션들이 많이 있다. 오픈소스 외에도 파이썬 바인딩이 있는 상업용 도서관이 많다. 이 장과 이 책 전반에 걸쳐, 나는 주로 매트플로트립에 관심을 가져왔는데, 그것은 파이톤에서 가장 널리 사용되는 음모 도구였기 때문이다. 과학 파이선 생태계의 중요한 부분인 반면, Mattplotlib는 통계 그래픽의 생성과 표시에 관해서는 많은 단점을 가지고 있다. MATLAB 사용자는 matplotlib가 친숙하다고 생각할 수 있는 반면, R 사용자(특히 우수한 ggplot2 및 treel lis 패키지의 사용자)는 다소 실망할 수 있다(적어도 이 글의 현재). matplotlib로 웹에 전시할 수 있는 아름다운 플롯을 만드는 것은 가능하지만, 도서관이 인쇄된 페이지를 위해 설계되었기 때문에 종종 상당한 노력이 필요하다. 미학은 차치하고라도 대부분의 요구에 충분하다. 팬더에서, 나는 다른 개발자들과 함께, 데이터 분석에서 대부분의 종류의 플롯을 더 쉽게 만들 수 있는 편리한 사용자 인터페이스를 구축하려고 노력했다. 널리 사용되고 있는 많은 다른 시각화 도구들이 있다. 여기 몇 개를 나열하고 생태계 탐사를 권장한다. 엔트리에 의해 개발된 정적 플로팅과 대화형 시각화에 모두 적합한 플로팅 툴킷이다. 특히 데이터 상호관계와 함께 복잡한 시각화를 표현하는 데 적합하다. Matplotlib와 비교하여 Chaco는 플롯 요소와의 상호 작용에 대한 지원이 훨씬 더 뛰어나고 렌더링 속도가 매우 빠르기 때문에 인터렉티브 GUI 애플리케이션을 구축하는 데 좋은 선택이다. 프라부 라마찬드란, 가엘 바로쿠 등이 개발한 마야비 프로젝트는 오픈소스 C++ 그래픽 라이브러리 VTK 마야비를 기반으로 구축한 3D 그래픽 툴킷으로, matplotlib와 같이 IPython과 통합되어 대화식으로 사용하기 편리하다. 플롯은 마우스와 키보드를 사용하여 상하좌우 이동, 회전 및 확대,축소할 수 있다. 나는 마야비를 이용하여 12장에서 방송의 삽화 중 하나를 만들었다. 여기서는 마야비 사용 코드를 보여주지 않지만, 온라인에는 많은 문서와 예시가 있다. 많은 경우에, 나는 그것이 비록 그래픽을 상호작용 형태로 공유하기 더 힘들지만 WebGL과 같은 기술에 대한 좋은 대안이라고 믿는다.

    시각화 도구의 미래
    웹 기술에 기반한 시각화는 피할 수 없는 미래로 보인다. 의심할 여지 없이 당신은 수년간 플래시나 자바스크립트에 내장된 다양한 종류의 정적 또는 대화형 시각화를 사용해 왔다. 이러한 디스플레이를 구축하기 위한 새로운 툴킷이 항상 등장하고 있다. 이와는 대조적으로, 비 웹 기반 시각화의 개발은 최근 몇 년 동안 현저하게 느려졌다. 이것은 Python뿐만 아니라 R과 같은 다른 데이터 분석 및 통계 컴퓨팅 환경에서도 유효하다. 그렇다면, 개발 과제는 판다와 같은 데이터 분석과 준비 도구와 웹 브라우저 간의 더 긴밀한 통합을 구축하는 데 있을 것이다. 나는 이것이 파이톤 사용자들과 비 파이톤 사용자들 사이의 유익한 협력의 장이 될 것이라고 희망한다. 

    'IT의 이해' 카테고리의 다른 글

    디버깅 실행흐름  (0) 2019.11.19
    파이썬 프로그래밍 언어  (0) 2019.11.19
    DataFrame 시리즈 Permering  (0) 2019.11.12
    오버랩과 데이터 결합  (0) 2019.11.12
    MongoDB에서 데이터 저장 및 로드  (0) 2019.11.12

    댓글

Designed by Tistory.