Python統計可視化之Altair探索分析實踐指南(全彩)( 簡體 字) | |
作者:劉大成 | 類別:1. -> 程式設計 -> Python |
出版社:電子工業出版社 | 3dWoo書號: 55617 詢問書籍請說出此書號! 有庫存 NT售價: 695 元 |
出版日:1/1/2022 | |
頁數:392 | |
光碟數:0 | |
站長推薦: | |
印刷:全彩印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121425974 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第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 本書以Altair為核心工具,通過認識數據、理解數據和探索數據全方位地探索分析數據集的統計可視化形式,以應用數據和案例研究為實踐場景,使用Altair數據加工箱進行數據預處理,在此基礎上,深入理解不同應用領域和實踐場景的數據集的統計可視化模型。本書以實踐和練習的方式學習和鞏固核心知識,學習形式簡單高效,適合大數據相關行業的人士參考,也適合大數據相關專業的高校師生教學和自學使用。 本書在很多章節均有動手實踐和練習,其中,"動手實踐”采用以練代講的方式學習和延展核心知識或技能,"練習”采用舉一反三的方式復習和鞏固核心知識或技能。
主要內容
首先,本書在圖形語法的基礎上,使用Altair 探索分析不同應用領域和使用場景的數據集,以組成數據集的變量和數據記錄為切入點,通過認識數據、理解數據和探索數據三個維度全方位地探索分析數據集的不同變量類型的統計可視化形式。然后,本書以應用數據和案例研究為實踐場景,運用描述統計學、推斷統計學和機器學習等數據科學知識,使用Altair 數據加工器實現數據預處理。在此基礎上,本書又深入淺出地介紹了不同應用領域和實踐場景的數據集的統計可視化模型。 各章概要 第1 章,介紹Altair 的安裝方法和Jupyter 的安裝方法,重點講解Altair 數據集的JSON 數據結構和Pandas 的數據框對象,以及數據預處理的高效工具。 第2 章,以圖形語法為核心,重點介紹Altair 的組成模塊、語言特點和語法規則。 第3 章,從變量類型和組合方式出發,介紹使用Altair 認識數據和繪制基本統計圖形的方法。 第4 章,從圖形構成出發,介紹使用Altair 理解數據的實現方法,以及使用Altair繪制分區圖形、分層圖形和連接圖形的實現方法。 第5 章,從交互出發,介紹使用Altair 探索數據和繪制交互圖形的實現方法。 第6 章,從獲取優質數據集出發,以統計可視化的不同呈現形式為切入點,介紹使用Altair 探索分析不同數據集的潛在價值。 第7 章,以數據集為核心,詳細分析不同案例的可視化模型和探索分析的維度,深入介紹不同應用領域的數據集和變量類型,以及構建不同應用領域的可視化模型。 第8 章,以探索分析為核心,將Altair 和其他探索分析工具有效結合,全面地探索分析不同實踐場景下、不同數據集的統計可視化模型。 第9 章,介紹使用Altair 設置顏色的方法,以及配置圖形屬性的作用范圍的實現方法。 配置要求 ? 推薦使用的硬件配置:四核處理器或更高配置、8 GB 或更大系統內存、至少10 GB 磁盤存儲空間。 ? 推薦使用的操作系統:Windows 7 或更高版本、Windows 10 或更高版本、Ubuntu 16.04 或更高版本、macOS Sierra 或更高版本。 ? Python 版本:Python 3.8.0 或更高版本。 ? 特別提示:使用首字母大寫的Altair 表示包的名稱,使用首字母小寫的altair表示包的安裝名稱或導入名稱,其他包的書寫規則與之類似。 ? 書中代碼使用的包的版本信息如下所示。 altair 4.1.0 gapminder 0.1 matplotlib 3.2.1 numpy 1.18.3 pandas 1.0.3 scipy 1.4.1 sviewgui 0.3.5 tinytag 1.5.0 vega-datasets 0.9.0 wordcloud 1.8.1 排版說明 書中代碼均可以在JupyterLab 或Jupyter Notebook 上運行,表示方法如下所示。 chart = alt.Chart(df).transform_filter( alt.datum.Origin=="Europe").mark_circle( color="seagreen").encode( alt.X("Horsepower:Q",scale=alt.Scale(zero=False,padding=20)), alt.Y("Acceleration:Q",scale=alt.Scale(zero=False,padding=5)), size="Cylinders:Q") 書中代碼在Python 的交互式解釋器中輸入和輸出的表示方法如下所示。 >>> import altair as alt >>> import altair_viewer >>> from vega_datasets import data >>> df = data.cars() >>> chart = alt.Chart(df).mark_circle().encode(x="Horsepower:Q",y="Acceleration:Q") >>> altair_viewer.display(chart,inline=True) <IPython.core.display.HTML object> 目標讀者 本書適合希望使用探索分析的方法,理解數據的不同維度和掌握數據統計可視化實現方法的商業數據分析師;使用Python 和Altair 深入理解數據預處理和統計可視化建模實現方法的數據挖掘工程師和機器學習工程師;構建實踐場景的統計可視化模型的開發人員和研究人員。書中內容講解細致全面、講練結合、案例豐富,也非常適合大數據相關專業的學生自學或教師課堂教學使用。 如何閱讀本書 無論是Altair 的初學者還是經驗豐富的可視化應用的開發者,建議從第1 篇至第3 篇按順序閱讀,第4 篇既可以單獨閱讀,也可以和其他篇章組合閱讀。附錄A 是正文中練習章節的參考實現方法。 本書在很多章節中均有“動手實踐”和“練習”小節,其中,“動手實踐”采用以練代講的方式讓讀者學習和延展核心知識或技能;“練習”采用舉一反三的方式讓讀者復習和鞏固核心知識或技能。 作者 2021 年10 月 |