Python 統計可視化之 Altair 探索分析實踐指南

劉大成

買這商品的人也買了...

商品描述

本書以Altair為核心工具,通過認識數據、理解數據和探索數據全方位地探索分析數據集的統計可視化形式,以應用數據和案例研究為實踐場景,使用Altair數據加工箱進行數據預處理,在此基礎上,深入理解不同應用領域和實踐場景的數據集的統計可視化模型。本書以實踐和練習的方式學習和鞏固核心知識,學習形式簡單高效,適合大數據相關行業的人士參考,也適合大數據相關專業的高校師生教學和自學使用。 本書在很多章節均有動手實踐和練習,其中,"動手實踐”採用以練代講的方式學習和延展核心知識或技能,"練習”採用舉一反三的方式復習和鞏固核心知識或技能。

目錄大綱

1 篇入門

1 章Altair 的環境配置. 4

1.1 Altair 的安裝. 4

1.2 前端渲染工具的安裝和啟動方法. 5

1.2.1 Jupyter N0tebook 的安裝和啟動方法 5

1.2.2 JupyterLab 的安裝和啟動方法 5

1.3 vega_datasets 的使用 6

1.4 JSON 簡介. 9

1.4.1 JSON 語法規則. 9

1.4.2 在Altair 中使用JSON . 10

1.5 Pandas 的數據框(DataFrame)對象的使用方法.12

1.5.1 使用字典創建DataFrame 的方法 12

1.5.2 DataFrame 的作方法 13

1.5.3 缺失值的作方法. 15

1.5.4 條件查詢的作方法. 22

1.6 數據加工器. 27

2 章Altair 的圖形語法. 30

2.1 圖形語法簡介. 30

2.1.1 圖形語法的原理. 31

2.1.2 圖形的視覺對象的組合原則. 33

2.1.3 Altair 圖形系統的組成模塊. 40

2.2 聲明式統計可視化的意義和優勢. 43

2.3 Altair 的語法規則. 46

2.3.1 Altair 的數據結構. 46

2.3.2 Altair 的基本對象. 48

2.3.3 Altair 的展示方法. 56

2.3.4 Altair 的存儲方法. 59

2 篇進階

3 章認識數據 65

3.1 名義型變量和數量型變量組合的經典圖形 66

3.1.1 柱形圖. 66

3.1.2 條形圖. 67

3.1.3 條形碼圖. 67

3.2 時間型變量和數量型變量組合的經典圖形 68

3.2.1 折線圖. 68

3.2.2 動手實踐:調整折線圖的刻度標籤. 70

3.2.3 次序型變量(時間變量離散化)和數量型變量組合:柱形圖 72

3.2.4 動手實踐:面積圖. 74

3.2.5 動手實踐:階梯圖. 76

3.2.6 練習:比較不同年份7 月的日降雨量. 78

3.2.7 動手實踐:分類匯總天氣類型的頻數分佈. 78

3.2.8 練習:總結分類匯總天氣類型頻數分佈的實現方法 81

3.2.9 斜率圖. 81

3.2.10 數據集類型的數據結構形式. 82

3.3 時間型變量和名義型變量的組合:甘特圖 85

3.4 數量型變量和數量型變量組合的經典圖形 87

3.4.1 散點圖. 87

3.4.2 動手實踐:氣泡圖. 89

3.4.3 動手實踐:缺失值的可視化識別方法. 90

3.4.4 直方圖. 91

3.4.5 熱力圖. 94

3.4.6 變量類型對顏色標尺的作用. 96

3.4.7 動手實踐:展示不同時間的#高氣溫的分佈情況 96

3.4.8 動手實踐:展示文本註釋與顏色的映關係. 99

4 章理解數據 105

4.1 使用子區通道分區理解數據 105

4.1.1 比較不同地區的汽車馬力分佈情況. 106

4.1.2 動手實踐:分區展示不同年份的每月ping均降雨量 108

4.1.3 練習:繪製不同月份的年ping均降雨量時間序列圖 109

4.2 使用分層圖形綜合理解數據110

4.2.1 使用描述統計量刻畫變量取值的分佈偏斜方向和程度 111

4.2.2 練習:繪製風速的均值、#大值和#小值的趨勢變化曲線. 115

4.3 通過連接圖形全面理解數據 115

4.3.1 散點圖連接直方圖了解更多的變量信息 116

4.3.2 練習:散點圖連接水ping直方圖和垂直直方圖,分別刻畫降雨量和

風速的頻數分佈 118

4.4 使用變量矩陣分區理解數據119

5 章探索數據 123

5.1 讓鼠標光標停留在標記上出現變量取值提示 123

5.1.1 實現方法. 123

5.1.2 練習:時間序列圖的時間型變量和數量型變量的提示文本 125

5.2 點擊鼠標和拖曳鼠標實現圖形區域選擇 127

5.2.1 實現方法. 127

5.2.2 動手實踐:動態選定時間區間的時間序列面積圖 132

5.3 點擊鼠標實現標記選擇. 137

5.3.1 實現方法. 137

5.3.2 動手實踐:滑動鼠標實現標記選擇. 139

5.4 點擊鼠標實現圖形區域選擇140

5.4.1 實現方法. 140

5.4.2 動手實踐:滑動鼠標實現圖形區域的選擇. 142

5.4.3 練習:鼠標光標懸停在註釋文本上交互顯示標記 143

5.4.4 動手實踐:缺失值的可視化識別方法2 144

5.5 元素交互實現圖形區域選擇 147

5.5.1 點選下拉列表實現圖形區域的選擇. 148

5.5.2 練習:使用條件查詢過濾數據記錄,實現圖形區域的選擇 150

5.5.3 使用單選按鈕實現圖形區域的選擇. 151

5.5.4 動手實踐:使用連接圖形以圖形聯動方式實現圖形區域的選擇. 152

5.5.5 練習:點選圖例的標記符號實現圖形區域的選擇 155

5.5.6 拖動滑塊實現圖形區域的選擇. 155

3 篇實踐

6 章應用數據 161

6.1 滑珠圖.161

6.1.1 比較不同國家人的預期壽命的變化情況. 161

6.1.2 動手實踐:使用網格線表示滑竿的滑珠圖. 163

6.1.3 練習:描繪數量波動的總體趨勢——棒棒糖圖166

6.2 連線散點圖.168

6.2.1 探索不同年份的數量變化. 168

6.2.2 動手實踐:使用文本註釋使連線散點圖成為時間故事線. 172

6.3 箱線圖. 173

6.3.1 探索不同天氣類型的風速分佈特徵和分佈形態174

6.3.2 動手實踐:垂直連接分區直方圖補充箱線圖的分佈特徵 176

6.3.3 水ping連接分區直方圖補充箱線圖的分佈特徵. 178

6.3.4 核密度估計加工器. 179

6.3.5 動手實踐:通過比較均值和眾數的大小分析概率密度曲線的

偏斜方向和程度. 181

6.3.6 數據離散加工器. 181

6.3.7 數據匯總連接加工器. 185

6.3.8 動手實踐:計算小雨天氣的出現天數. 188

6.3.9 練習:按照月份統計不同降雨量類型出現的天數 190

6.4 探索數據的累積匯總和秩的排序及滯後變換——窗口變換加工器.191

6.4.1 窗口變換加工器的應用. 191

6.4.2 動手實踐:累積求和的柱形圖. 193

6.4.3 指數圖. 195

6.4.4 動手實踐:秩的排序. 198

6.4.5 凹凸圖. 201

6.4.6 動手實踐:滯後等值和領先等值. 206

6.4.7 瀑布圖. 209

6.4.8 練習:銷售量的相對變化量. 214

6.5 分散型堆積條形圖系列. 215

6.5.1 分散型堆積條形圖. 215

6.5.2 漏斗圖. 217

6.5.3 動手實踐:離散化的顏色標尺. 221

6.5.4 旋風圖. 224

6.5.4 動手實踐:堆積條形圖的分層圖形——子彈頭圖 227

6.5.5 練習:將堆積條形圖變成分層條形圖——溫度計圖 230

6.6 堆積柱形圖系列 231

6.6.1 堆積柱形圖. 231

6.6.2 堆積百分比柱形圖. 235

6.7 面積圖系列. 236

6.7.1 堆積百分比面積圖. 236

6.7.2 量化波形圖. 237

6.8 置信區間的應用 239

6.8.1 置信區間. 239

6.8.2 誤差棒圖. 241

6.8.3 動手實踐:樣本容量對樣本標準差和样本均值的標準誤的影響. 245

7 章案例研究 248

7.1 不同數量級和單位變量關係的探索分析 248

7.1.1 使用ping行坐標圖分析數量型變量的相關關係. 249

7.1.2 使用矩陣散點圖分析連續型變量的相關關係. 251

7.1.3 建立馬力和重量的一元線性回歸模型. 252

7.1.4 練習:建立生產年份和重量的置信帶與回歸直線 265

7.1.5 動手實踐:建立關於生產年份的重量分佈脊線圖 266

7.1.6 動手實踐:建立馬力和單位里程數的非線性回歸模型. 268

7.2 金融時間序列數據的探索分析. 270

7.2.1 5 隻股票的價格波動探索分析 271

7.2.2 5 隻股票的頻數分佈探索分析 274

7.2.3 比較不同股票的價格走勢圖. 275

7.2.4 股票收益率的迷你折線圖. 277

7.2.5 股票波動率的迷你柱形圖. 278

7.2.6 繪製股票收盤價的移動ping均線. 281

7.2.7 繪製股票的K 線圖(蠟燭圖) 283

7.2.8 動手實踐:繪製移動ping均線和K 線圖的分層圖形. 285

7.2.9 練習:使用柱線圖(棒形圖)代替K 線圖. 289

7.3 自然語言處理的可視化模型的構建和應用. 289

7.3.1 讀取文本數據. 290

7.3.2 存儲單詞和字母的頻數分佈. 292

7.3.3 使用條形圖分析字母的頻數. 293

7.3.4 使用條形圖分析高頻詞. 295

7.3.5 使用詞云圖分析段落詞語的運用特點. 296

7.4 反映統計數字的象形圖. 299

7.5 可視化模型框架的數據流轉過程與模型存儲和渲染方法 303

7.5.1 使用Pandas 的實例方法to_json()和Altair 的函數to_values()

完成數據流轉. 304

7.5.2 使用Altair 的函數to_json()和函數to_values()完成數據流轉 305

7.5.3 可視化模型的存儲和渲染方法. 305

7.6 調整坐標軸的量尺類型的實現方法和應用場景. 306

7.6.1 選擇合適的坐標軸量尺類型. 306

7.6.2 使用氣泡圖描繪3 個數量型變量的數量關係. 307

7.6.3 動手實踐:按照年份查看人均收入、壽命和人口數量的

動態變化關係. 309

7.6.4 使用連續型量尺離散化的方法轉換變量類型. 312

7.7 使用波形圖和頻譜圖分析音頻文件. 314

7.7.1 使用波形圖分析音頻文件的聲音變化. 314

7.7.2 使用頻譜圖分析音頻文件的頻率變化. 315

7.7.3 練習:使用儀錶盤分析音頻文件的元數據. 317

7.8 視覺圖像的大塊數據文件處理和統計可視化 318

4 篇拓展

8 章探索分析輔助工具. 327

8.1 包sviewgui 的使用方法. 327

8.1.1 sviewgui 加載數據和讀取數據的方法 328

8.1.2 CSV 文件的GUI 具體功能和使用方法. 329

8.1.3 數據框對象的GUI 具體功能和使用方法 331

8.2 數據框對象統計可視化的實現方法. 334

8.2.1 折線圖. 334

8.2.2 核密度估計圖. 336

8.2.3 直方圖. 338

8.2.4 散點圖. 340

8.2.5 六邊形網格圖. 341

8.2.6 箱線圖. 341

9 章顏色的使用方法和屬性配置的作用域. 343

9.1 顏色方案的設置方法 343

9.2 動手實踐:使用顏色方案accent 設置標記屬性通道color 的

配色模式 346

9.3 變量與顏色的映關係的設置方法. 347

9.4 原始顏色編碼數據的設置方法. 348

9.5 屬性配置的作用域. 349

附錄A 本書練習詳解. 352

3.2.6 練習:比較不同年份7 月的日降雨量. 352

3.2.8 練習:總結分類匯總天氣類型頻數分佈的實現方法 354

4.1.3 練習:繪製不同月份的年ping均降雨量時間序列圖 355

4.2.2 練習:繪製風速的均值、#大值和#小值的趨勢變化曲線 356

4.3.2 練習:散點圖連接水ping直方圖和垂直直方圖,分別刻畫降雨量和

風速的頻數分佈. 358

5.1.2 練習:時間序列圖的時間型變量和數量型變量的提示文本 359

5.4.3 練習:鼠標光標懸停在註釋文本上交互顯示標記 360

5.5.2 練習:使用條件查詢過濾數據記錄,實現圖形區域的選擇 362

5.5.5 練習:點選圖例的標記符號實現圖形區域的選擇 364

6.1.3 練習:描繪數量波動的總體趨勢——棒棒糖圖365

6.3.9 練習:按照月份統計不同降雨量類型出現的天數 367

6.4.8 練習:銷售量的相對變化量. 369

6.5.5 練習:將堆積條形圖變成分層條形圖——溫度計圖 370

7.1.4 練習:建立生產年份和重量的置信帶與回歸直線 373

7.2.9 練習:使用柱線圖(棒形圖)代替K 線圖. 374

參考文獻 376