본문 바로가기

데이터와 함께 탱고를/데이터 시각화

(13)
[지도 데이터 시각화] Part 6. pydeck 살펴보기 deck.gl 은 Uber 에서 만든 자바스크립트 공간 데이터 시각화 라이브러리입니다. pydeck 은 이 라이브러리를 파이썬에서도 쓸 수 있도록 만든 패키지입니다. 이 또한 Uber 팀에서 공식적으로 만들었습니다. 특징으로는 대용량 데이터도 거뜬하게 렌더링할 수 있으며, 렌더링이 좀 버거울 수도 있는 일부 레이어는 GPU 연산을 제공합니다. (즉 대용량 처리 및 렌더링에 매우 용이하다는 말입니다.) 이전에 말씀드렸다싶이, 지금까지 소개한 2개의 파이썬 패키지(folium, mapboxgl)에 비해 상대적으로 매우 최근 라이브러리고, 기술적으로도 훨씬 진보한 라이브러리라, 꼭 알고가셨으면 좋겠습니다. 다만, 이전보다 좀 더 섬세하게 다룰 수 있는 부분이 많아, 조금 더 어려울 수는 있습니다. 아직 geo..
[지도 데이터 시각화] Part 5. Mapboxgl 살펴보기 Mapbox 는 WebGL 기술을 이용해, 브라우저에 지도 데이터를 렌더링해주는 해주는 자바스크립트 라이브러리입니다. (물론, 모바일용, Unity 용으로도 있습니다.) Mapbox 의 주 기능은 무엇보다 '이쁘게' 그려준다는 겁니다. API 기능 설계가 대부분 이 '스타일' 에 아주 잘 맞춰져있습니다. 또, 어떤 라이브러리보다, API Reference 가 직관적이고 쉽습니다. 공식 Documentattion 을 보시면, 깔끔하게 API 가 정리되어있는 것을 보실 수 있고, 누구나 쉽게 사용할 수 있도록 Examples 도 훌륭하게 정리되어 있습니다. Mapbox GL js API Refernce https://docs.mapbox.com/mapbox-gl-js/api/ M..
[지도 데이터 시각화] Part 4. Folium 살펴보기 첫 번째로 살펴볼 시각화 패키지는 Folium 입니다. leaflet.js 기반으로 지도를 그려주고, 모바일에서도 쓸 수 있을만큼 가볍습니다. 나온지도 다른 라이브러리들에 비해 상대적으로 오래된 패키지입닌다만, 그만큼 안정적입니다. 한편, 분석 프레임워크로 가장 많이쓰는 pandas 와 쉽게 연동되어 간편하게 시각화가 가능합니다. 파이썬에서 지도 시각화 하면 가장 유명한 패키지일지도 모르겠습니다. 자 그럼 시작해보겠습니다. 1. 설치 먼저 pip install 로 folium 을 설치하고 임포트해줍니다. pip install foliumimport folium folium.__version__ '0.9.0'2. 샘플 하나 해보기 https://python-visualization.githu..
[지도 데이터 시각화] Part 3. Mapbox로 지도 데이터 시각화하기 사실, 파이썬으로 지도 데이터를 시각화하는 여러 방법에 대해서 소개하고자, 이 시리즈를 쓰게 되었지만 그 전에 앞서, 굳이 꼭 파이썬을 써야할까라는 생각이 들 수 있습니다. 파이썬 아니여도 시각화할 방법은 많으니까요. 특히 코드에 익숙치 않고, 보다 직관적인 UI 를 원하시는 분들을 위해 파이썬에 앞서 이 포스팅을 먼저 남깁니다. 이미 Mapbox Studio 와 Carto 라는 훌륭한 웹 기반 플랫폼이 있습니다. 여기서는 Mapbox Studio 에 대해서 잠깐 소개하겠습니다. 지도 데이터 시각화를 하다보면, Mapbox 라는 이름 참 많이 봅니다. 그만큼 강력하고 훌륭한 소프트웨어를 잘 만들어놓은 회사입니다. 최근 엄청난 상승세이기도 합니다. 각설하고, Mapbox 에서 Mapbox Studio 를 ..
[지도 데이터 시각화] Part 2. 여러 시각화 타입 알아보기 이번 포스팅에서는, 지도 데이터를 시각화할 때 어떤 타입으로 시각화할 수 있는지 그 종류를 살펴보겠습니다. 이 타입이 정해진 것은 아니나, 대체로 많이 써오던 타입은 이름이 보통 정해져있습니다. 따라서, 기본적인 시각화 형태부터 하나씩 살펴본 후, 이후 조금 특이한 타입도 살펴보겠습니다. 1. Scatter (Point) 어떤 라이브러리에서는 Point plot 으로도 불립니다. 말 그대로 Point 단위로 데이터들을 지도에 찍습니다. 데이터는 Point 단위로 geometry 정보를 갖고 있어야 합니다. 예를 들어, 각 데이터가 범죄가 발생한 곳의 위치 데이터라면, 주로 어디서 발생하는지 한 눈에 알 수 있습니다. 이처럼, 전반적인 위치 데이터의 구체적인 분포를 보고 싶을 때 사용합니다. 2. Line..
[지도 데이터 시각화] Part 1. Geo Data 와 Python 1. Geo Data 1.1. 개념 지도 데이터를 다루기 앞서, 지도 데이터란 무엇이고 어떤 형태로 생겼는지 살펴보려 합니다. 지도 데이터는 일반적으로 '위치' 정보를 담고 있는 데이터입니다. 이 위치는 좌표계에 따라 다르게 정의될 수 있지만, 일반적으로는 시각화에는 WGS84 좌표계(EPSG 4326 이라고도 합니다)를 씁니다. 한편, 점과 점 사이의 거리 등 공간 연산에는 WGS84 가 아닌 다른 좌표계를 씁니다. 이처럼 목적에 따라 좌표계가 달라질 수 있습니다. 좌표계 종류와 구분은 아래 링크에서 확인해보세요. https://www.osgeo.kr/17 한편, 각 좌표계에서 한 지점을 점, Point 라고 합니다. 이 점은 좌표계에서 (x, y) 로 표현됩니다. WSG84 에서는 (경도, 위도)로 ..
matplotlib.pyplot 좀 더 복잡한 레이아웃 1 from matplotlib import gridspec fig = plt.figure() gs = gridspec.GridSpec(1, 2) gs00 = gridspec.GridSpecFromSubplotSpec(2, 1, subplot_spec=gs[0]) gs01 = gridspec.GridSpecFromSubplotSpec(1, 2, subplot_spec=gs[1]) ax1 = fig.add_subplot(gs00[0]) ax2 = fig.add_subplot(gs00[1]) ax3 = fig.add_subplot(gs01[0]) ax4 = fig.add_subplot(gs01[1]) ax1.plot([1,2,3], [1,2,3]) 이렇게 배워 갑니다... (추후 한 번에 정리할 예정) 아무래도..
이제는 matplotlib 말고, Plotly 를 쓰자. 세련된 데이터 시각화 패키지, Plotly. matplotlib, seaborn 만 사용하다가, 최근에 훨씬 세련된 데이터 시각화 툴을 찾았습니다. plotly 인데, 웹 시각화 라이브러리인 d3.js 를 이용하여 보다 interactive 하게 그래프를 만들어줍니다. 그만큼, 굉장히 잘되어있고, 앞으로도 많이 발전할 라이브러리라는 생각이 듭니다. 예를 들어, 다음과 같은 그래프를 만들 수 있습니다. data = pd.Series(range(10)) data.iplot(kind='bar', title="제목", xTitle="x축", yTitle="y축") 코드만 봐도, matplotlib 보다 훨씬 간결함이 보입니다. 시각화 된 그래프 역시 훨씬 세련된게 느껴집니다. 또한, 우측 하단 Export to..