Life/Books

[서평] Plotly로 시작하는 인터랙티브 데이터 시각화 in R & 파이썬 (이기준 저 / Jpub)

Woomii 2023. 12. 24. 00:21
728x90
반응형

 

 

기본정보

저자 이기준
출판사 제이펍
쪽수/크기 480쪽 / 188*245mm / 912g
독서기간 2023년 12월
매체 단행본(제이펍 서평단)

 

저자 소개

이기준

한국항공대학교에서 컴퓨터공학으로 박사 학위를 받았다. 한국교육개발원(KEDI)에서 유/초/중/고 및 대학의 국가교육통계 데이터의 디지털화를 시작으로 20여 년간 국가교육통계 데이터 조사, 관리, 분석과 서비스 시스템의 기획, 개발, 운영, 관리의 전 분야를 실무부터 총괄까지 수행했다. KEDI에서 교육통계센터소장 및 국가교육통계연구본부장 등을 역임했고, 미국 보이시 주립대학교(Boise State University) 교육공학과에서 연수했으며, 현재 한국교육개발원 정보화실장으로 근무 중이다. 이 밖에도 과학기술정보통신부 인공지능 윤리정책 포럼위원, 대통령직속 4차산업혁명위원회 자문위원, 교육부 인공지능 교육정책 자문위원, 통계청 통계분류 자문위원, 2018 평창동계올림픽 IT 자문위원 등으로 활동했다. 주로 교육통계 데이터를 활용한 데이터 분석 연구와 교육통계 데이터 시스템 기획 및 구축 관련 연구를 수행했다.

저서로 2022년 세종도서 학술부문 우수도서에 선정된 《실전에서 바로 쓰는 시계열 데이터 처리와 분석 in R》(제이펍, 2021)이 있고, 공저서로 《메타버스 유니버시티》(동문사, 2023)가 있다.

 

출처: https://jpub.tistory.com/1501 [제이펍의 참 똑똑한 2비트 책 이야기:티스토리]

 

 

감상

이 책을 보면서 제가 인상 깊게 보았던 포인트들을 본문과 함께 소개해보고자 합니다. 

 

[Point1] 친절한 설명 : 데이터 시각화의 이론부터 실제까지

1) 문장의 가독성이 좋다!

이 책을 받아 쭉 읽으면서 느꼈던 점은 저자 분께서 문장을 매끄럽게 쓰신다는 점이었어요. 다른 기술 분야의 도서를 보다 보면 아무래도 공대생의 특성(?)인지는 모르겠지만 가독성이 떨어지는 경우가 많아 집중하지 못하고, 결국은 책을 읽다가 중도에 포기하는 경우가 많았거든요..

하지만, 이 책의 경우 제가 감히 평가하기 송구스럽지만 글이 자세하면서도 간결하게 작성되어 있어서 개념 설명 부분에서 제가 집중력을 놓지 않고 쭉쭉 읽어나갈 수 있었던 점이 인상 깊었습니다.

 

2) 친절한 설명

또한 이 책이 다른 책들과 다른 점은 데이터 시각화를 위한 코드를 단순 나열한 것이 아니라 데이터 시각화 전반에 걸쳐 개념을 친절하게 설명해 주고, 지식을 전달하고자 한다는 것입니다.

 

예를 들어, 아래 사진은 '차트, 플롯, 그래프'를 나누어 이렇게 설명해 주는 부분이 인상 깊어서 가져와 보았어요.

 

저도 평소에 시각화 차트를 그리면서 플롯이나 그래프라는 단어를 섞어서 사용하고는 했었는데, 이 부분을 콕 짚어서 설명해 주신 점이 너무 신기했어요!

 

제가 생각하는 차트는 MS office에서 제공하는 기능?, 플롯은 python이나 R에서 시각화의 결과물로 생성된 결과물, 그래프는 조금 더 광범위하게 일반적으로 사용하는 단어라는 느낌이 들었었는데요. 이런 설명을 읽으면서 조금 더 구체적인 의미를 생각해 볼 수 있어서 좋았습니다.

 

책에서 설명하는 차트, 플롯, 그래프

 

그리고, 참고로 챗GPT 선생님은 각각을 어떻게 생각할지 궁금해서 물어봤는데, 그 내용은 다음과 같습니다. 책에서 설명하는 내용과 비슷하면서도 다른 부분들이 있어서 각각을 비교해서 보시면 더 좋을 것 같아요.

(내용에 큰 차이가 있는 것은 아니고 책에서는 차트가 가장 넓은 범위의 개념이라고 설명하고 있는데, GPT는 그래프가 차트와 플롯보다 넓은 범위의 개념이라고 한다는 점 정도?)

 

역시나 중요한 점은 세 가지 모두 데이터를 시각적으로 표현해서 데이터를 분석하는 데 사용하고, 이를 토대로 다른 사람들과 소통하고 내용을 전달하는 데 사용할 수 있는 도구라는 점이겠죠!

 

 

[참고] 차트, 플롯, 그래프의 차이 From ChatGPT

  • 공통점:
    • 시각적 표현: 차트, 플롯, 그래프 모두 데이터와 데이터 요소 간의 관계를 시각적으로 나타내는 도구입니다.
    • 데이터 분석: 데이터 세트 내의 추세, 패턴, 이상치를 이해하는 데 도움이 되므로 데이터 분석에 자주 사용됩니다.
    • 소통: 차트, 플롯, 그래프는 복잡한 데이터를 간단하고 효과적으로 넓은 대상에게 전달하는 강력한 수단입니다.
  • 차이점:
    • 차트: 데이터의 그래픽 표현으로, 바 차트의 막대나 라인 차트의 선과 같은 상징을 사용하는 경우가 많습니다.
      • 유형: 일반적인 유형에는 막대 차트, 원형 차트, 선형 차트 등이 있습니다.
      • 사용: 차트는 특히 다른 데이터 세트를 비교하고 범주형 데이터 간의 관계를 보여주는 데 유용합니다.
    • 플롯: 플롯은 주로 x축과 y축에 데이터 점을 나타내는 그래프를 말합니다. 두 개 이상의 변수 간의 관계를 관찰하고 보여주는 데 사용됩니다.
      • 유형: 일반적인 유형에는 산점도, 선형 플롯, 히스토그램 등이 있습니다.
      • 사용: 플롯은 특히 시간에 따른 추세, 관계, 데이터 내의 분포를 분석하고 표시하는 데 유용합니다.
    • 그래프: 그래프는 데이터의 시각적 표현을 나타내는 보다 광범위한 용어로, 차트와 플롯을 포함할 수 있습니다. 더 구체적인 수학적 의미에서는 객체 쌍 간의 관계를 나타냅니다.
      • 유형: 모든 차트와 플롯을 포함하여, 네트워크 그래프와 트리 다이어그램과 같은 전문화된 유형이 있습니다.
      • 사용: 그래프는 데이터 표현뿐만 아니라 데이터 점 간의 구조적, 관계적, 때로는 지리적 관계를 보여주는 데 사용됩니다.

 

 

 

 

산점도의 개념과 plotly 시각화에서 사용되는 주요 속성

 

[Point2] 충분한 예제 제공

실행 가능한 소스코드 & 시각화에 사용할 데이터 등

 

두 번째로 이 책에서 인상 깊었던 점은 역시 프로그래밍 도서답게 실제로 실행해 볼 수 있는 시각화 예제를 제공한다는 점입니다.

물론 거의 대부분의 프로그래밍 도서들이 책에 나와있는 코드를 github나 출판사 홈페이지 등을 통해 제공하고는 있지만요, 이 책은 특히 반응형 시각화가 가능한 plotly에 대한 내용을 다루고 있기 때문에 구현된 결과물들을 실제로 확인해 보는 것이 중요합니다.

 

1) 그래프를 직접 확인해 볼 수 있는 QR 코드 제공

 

이 책에서는 반응형 시각화 결과에 대해서 설명할 때는 그래프 오른쪽에 QR코드를 통해 저자의 블로그로 연결되어 실제 예제를 확인해 볼 수가 있어 좋았어요! 하지만, 이 부분에서 아쉬운 점도 있었어요. 그 점에 대해서는 마지막 총평에서 다시 한번 말씀드릴게요!

 

책에서 설명하는 그래프를 블로그에서 실제로 확인할 수 있어요

 

 

2) R & Python 두 가지 언어 코드 제공

 

그리고, 또 좋았던 점은 이 책의 제목 'Plotly로 시작하는 인터랙티브 데이터 시각화 in R & 파이썬'에서도 알 수 있듯이 모든 예시 코드가 R과 Python 두 가지 언어로 제공된다는 점이었어요!

저도 처음 프로그래밍을 배울 때만 해도 python은 잘 몰랐고, R만 사용할 줄 알았었는데요. (지금은 어쩌다 보니 python도 조금은 다룰 수 있게 되었지만요) 그때의 저였다면 이 책과 같이 두 가지 언어가 아니라 요즘 두루 사용되는 python만으로 예제가 구성되었다면 책을 볼 수 없었을 텐데, plotly를 사용할 수 있는 2가지 프로그래밍 언어를 모두 수록해서 책은 두꺼워졌을지언정 더 많은 분들께 도움을 드릴 수 있을 것 같다는 생각이 들었습니다.

R & Python 모두 예제를 제공

 

총평

데이터 시각화의 개념부터 실제까지 한 번에, 그리고 친절하게 잘 설명하고 있는 책! 

아쉬운 점

마지막으로, 제가 앞에서 아쉬운 점도 있었어요. 그 점에 대해서는 마지막 총평에서 다시 한번 말씀드릴게요!라고 했었는데요. 그 부분은 바로 책이 컬러로 제작되지 않은 부분이에요.

물론 책을 보다 보니 풍부한 내용과 R/Python 2가지 예제 코드를 수록하여 두께가 두꺼워지고, 도서 원가 측면에서 어쩔 수 없는 선택이라는 생각은 들었지만, 시각화 결과를 2도 인쇄(?) 로만 확인할 수 있으니 그 점이 아쉬웠어요.

 

다만, 앞에서 언급했듯 일부 그래프는 QR코드를 통해 실제 예시를 확인해 볼 수 있는 링크가 제공되는데, 이마저도 전체 그래프에 대해서 제공되는 것이 아니다 보니 (제가 말한 아쉬움을 해결하기 위해서는) 저자분의 블로그도 좋지만 출판사 차원에서 모든 시각화 그래프를 온라인에 업로드하여 독자에게 제공하고, 각 그래프에 접속할 수 있는 링크나 QR코드를 책에 수록한다면 바로바로 확인할 수 있기 때문에 독자들에게 더 도움이 될 것 같다는 생각도 들었습니다! (다음 책이나 개정판에서는 한 번만 고려해 주세요 ㅠㅠ) + 혹은 전자책 출판시에는 인쇄의 제약이 없으니 그래프들을 원래 색상 그대로 볼 수 있다면 더 좋을 것 같아요!

 

물론 이 아쉬운 점보다 전체 책의 내용과 장점들이 훨씬*100 더 커서 아쉬운 점 때문에 이 책을 읽을지 말지 고민하실 필요는 전~혀 없다는 말씀 다시 한번 드립니다!

 

추천/비추천 대상

  • 추천 대상 : 파이썬 or R을 일정 수준 이상으로 활용할 수 있고, 데이터 시각화에 대한 지식을 가지고 계신 분들에게 가장 좋겠지만, 그렇지 않은 분들도 차근차근 읽어나가시면 이해가 되도록 친절하게 설명되어 있어요
  • 비추천 대상 : 데이터 분석의 기본 개념이 전혀 없으신 경우 읽는데 어려움을 느끼실 수도 있을 것 같아요 ㅠㅠ + 책의 충실할 내용들로 인해 면수가 많고 무거운 지라 (480쪽 / 912g) 참고하세요! (제이펍이니 금방 전자책도 나오겠죠?)

 


차례

이 책은 크게 다음의 3개 파트로 구성되어 있으며, 전체 목차는 더 보기 란을 참고해 주세요!

 

PART I 데이터 시각화의 기초

PART II Plotly 시각화의 기초

PART III Plotly 시각화의 실전

 

더보기

추천의 글 x

베타리더 후기 xiii

시작하며 xvi

이 책에 대하여 xix

 

PART I 데이터 시각화의 기초

CHAPTER 1 데이터 시각화란? 3

1.1 데이터 시각화의 필요성 5

1.2 왜 데이터 시각화를 해야 하는가? 6

1.3 데이터 시각화로 무엇을 표현하는가? 10

1.4 유명한 데이터 시각화 사례 11

1.5 차트, 플롯, 그래프 15

 

PART II Plotly 시각화의 기초

CHAPTER 2 Plotly로 시각화하기 19

2.1 Plotly란? 20

2.2 예제 데이터 Import와 전처리 22

2.3 Plotly 시작하기 28

CHAPTER 3 트레이스 41

3.1 트레이스의 생성 41

3.2 트레이스의 공통 속성 45

 

CHAPTER 4 layout 속성 65

4.1 layout 속성 설정 65

4.2 layout 공통 주요 속성 66

 

CHAPTER 5 서브플롯 89

5.1 서브플롯 생성과 제목 설정 89

5.2 서브플롯 범례 설정 97

5.3 서브플롯 배치와 편집 98

5.4 축 공유 106

 

CHAPTER 6 색상 설정 109

6.1 연속형 색상 110

6.2 이산형 색상 115

 

PART III Plotly 시각화의 실전

CHAPTER 7 관계와 분포의 시각화 123

7.1 산점도 123

7.2 히스토그램 136

7.3 박스 플롯 146

7.4 바이올린 플롯 155

 

CHAPTER 8 비교와 구성의 시각화 162

8.1 막대그래프 163

8.2 비율 막대그래프 180

8.3 롤리팝 그래프 186

8.4 레이더 차트 190

8.5 덤벨 차트 198

8.6 파이 차트 200

8.7 선버스트 차트 209

8.8 트리맵 217

 

CHAPTER 9 시간과 흐름의 시각화 221

9.1 선 그래프 221

9.2 캔들스틱 차트 245

9.3 폭포수 차트 264

9.4 퍼널 차트 267

9.5 산키 다이어그램 275

 

CHAPTER 10 지수와 지도의 시각화 282

10.1 인디케이터 282

10.2 지도의 시각화 302

 

PART IV Plotly 시각화의 활용

CHAPTER 11 시각화 컨트롤 329

11.1 컨트롤 위치 설정 331

11.2 버튼 컨트롤 332

11.3 드롭다운 컨트롤 346

11.4 슬라이더 컨트롤 349

 

CHAPTER 12 Plotly 시각화 사용하기 355

12.1 모드바의 사용 355

12.2 마우스 사용 358

12.3 범례 사용 360

 

CHAPTER 13 Plotly 배포 361

13.1 오프라인 배포 361

13.2 온라인 배포 364

 

CHAPTER 14 효과적인 시각화 만들기 369

14.1 청중은 누구인가? 370

14.2 적절한 시각화 타입의 선정 371

14.3 시각화의 매체 373

14.4 간결한 시각화 374

14.5 읽기 쉬운 라벨링 376

14.6 왜곡의 방지 378

14.7 적절한 색상 사용 381

 

마치며 383

 

APPENDIX A R과 파이썬을 사용한 대시보드 만들기 384

A.1 Plotly와 파이썬을 사용한 Dash 앱 시작하기 384

A.2 Plotly와 R을 사용한 Shiny 앱 시작하기 402

 

APPENDIX B plotly.express 420

B.1 plotly.express 420

B.2 함수 설명, 주요 매개변수와 사용 예 424

 

찾아보기 446

 

참고 자료

본 도서에 나온 예제들은 저자의 블로그를 통해 확인할 수 있습니다.

Plotly로 시작하는 인터랙티브 데이터 시각화 in R & 파이썬 (tistory.com)

 

Plotly로 시작하는 인터랙티브 데이터 시각화 in R & 파이썬

Plotly로 바로 쓰는 동적 데이터 시각화 in R & 파이썬과 실전에서 바로쓰는 시계열 데이터 처리와 분석 in R의 대표 페이지입니다.

2stndard.tistory.com

 

출판사 블로그 : https://jpub.tistory.com/1501

 

Plotly로 시작하는 인터랙티브 데이터 시각화 in R & 파이썬

복잡하고 어려운 데이터를 한눈에 들어오는 그래프와 차트로 만들기 이 책은 인터랙티브 시각화 패키지인 Plotly로 시각화하는 방법을 취업률 및 코로나 데이터로 예를 들면서 R과 파이썬으로 구

jpub.tistory.com

 

도서구매 사이트(가나다순)

  [교보문고]  [도서11번가]  [알라딘]  [예스이십사]  [인터파크]  [쿠팡

 

 
본 서평은 출판사로부터 책을 제공받아 작성되었습니다. (인스타그램 이벤트)

 

반응형