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

劉大成

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

商品描述

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

目錄大綱

第1 篇 入門 第1 章 Altair 的環境配置 . 4 1.1 Altair 的安裝 . 4 1.2 前端渲染工具的安裝和啟動方法 . 5 1.2.1 Jupyter Notebook 的安裝和啟動方法 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 動手實踐:分區展示不同年份的每月平均降雨量 108 4.1.3 練習:繪制不同月份的年平均降雨量時間序列圖 109 4.2 使用分層圖形綜合理解數據 110 4.2.1 使用描述統計量刻畫變量取值的分佈偏斜方向和程度 111 4.2.2 練習:繪制風速的均值、最大值和最小值的趨勢變化曲線 . 115 4.3 通過連接圖形全面理解數據 115 4.3.1 散點圖連接直方圖瞭解更多的變量信息 116 4.3.2 練習:散點圖連接水平直方圖和垂直直方圖,分別刻畫降雨量和 風速的頻數分佈 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 水平連接分區直方圖補充箱線圖的分佈特徵 . 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 使用平行坐標圖分析數量型變量的相關關系 . 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 繪制股票收盤價的移動平均線 . 281 7.2.7 繪制股票的K 線圖(蠟燭圖) 283 7.2.8 動手實踐:繪制移動平均線和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 練習:繪制不同月份的年平均降雨量時間序列圖 355 4.2.2 練習:繪制風速的均值、最大值和最小值的趨勢變化曲線 356 4.3.2 練習:散點圖連接水平直方圖和垂直直方圖,分別刻畫降雨量和 風速的頻數分佈 . 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