2020년 4월 12일 일요일

다중 heatmap


3차원 데이터를 표시할 때  라인의 density를 이용해서 2차원에 표시합니다.  대표적이 예가  2d -density-plot  혹은  heatmap 입니다.

Density  값 혹은 heatmap으로 표시하는 값의 분포가 고르면 문제가 없으나 한쪽에 몰리는 분포는 한 장의 그래프로 표시하기가 어렵습니다.   보기로 사용한 데이터는 에어비앤비에 나오는 평가 건수와 점수인데  평가 건수가 낮은 쪽에 몰려 있었습니다.  한 개의 heatmap으로 전체 내용을 표현하기 힘들어 3개로 나누어 표시합니다.   2차원에서는 y축의 scale을 달리한 두개의 그래프를 붙여서 이 문제를 해결합니다.  참고로 할 그래프는 다른 블로그 글에 소개되어 있습니다.  

에어비앤비의 데이터는 인사이드 에어비앤비 http://insideairbnb.com/ 에서 구할 수 있습니다.  에어비앤비 홈피에서 보는 내용을 csv 파일로 정리되어 있습니다.  202046일 현재 전세계 102개 도시 혹은 지역에 나온 에어비앤비 숙소가 있습니다. 이 중에 두번째로 많은 숙소를 소개한 도시가 파리입니다.  파리는 67,324개 숙소를 고를 수 있습니다.  런던은 88,130개입니다.  각 숙소에 대한 위치, 요금, 리뷰, 평가 건수, 평가 점수 등을 볼 수 있습니다.  

먼저 평가 건수를 x, 평가 점수를 y축으로 해서 scatter로 그리면 다음과 같습니다. 



대략적인 분포는 알 수 있지만 어디에 얼마만큼 집중되어 있는지는 알 수가 없습니다.  X축과 y축을 bin20개로 나누어 빈도수를 density로 간주해서 heatmap를 그려 봅니다.
빈도수가 0에서 14,000번까지 나오고 주로 낮은 빈도 수에 몰려 있어 구별이 어렵습니다.  그래서 빈도수에 따라 heatmap을 세개로 나누었습니다. 


첫번째가 빈도수 1부터 9까지, 두번째가 10에서 99까지, 세번째가 100이상입니다. 

댓글 없음:

댓글 쓰기