
Data-Science-For-Beginners 占比可視化實戰在 Excel 與 Python 中制作餅圖、環形圖與華夫圖【免費下載鏈接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!項目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners本文圍繞 Data-Science-For-Beginners 課程第 11 課 Visualizing Proportions 的課后作業 Try it in Excel 展開講解如何基于自選數據集在 Excel 中一次完成餅圖Pie、環形圖Donut與華夫圖Waffle三種占比可視化并結合課程配套的蘑菇數據集data/mushrooms.csv與 Python 參考實現matplotlib PyWaffle講清數據分組 → 圖表選型 → 繪制輸出的完整鏈路。讀完本文你將掌握三種占比圖表各自的適用場景、Python 端的標準寫法以及如何在 Excel 中完成等價復刻并通過作業評分。作業要求解讀在 Excel 里畫出三種占比圖課程在第 11 課結束時布置了一項動手作業對應英文原版 3-Data-Visualization/11-visualization-proportions/assignment.md其核心要求可以概括為你是否知道可以在 Excel 中創建環形圖、餅圖和華夫圖請使用一個自選數據集直接在 Excel 工作表中創建這三種圖表。也就是說作業并不要求寫代碼而是要求你在 Excel 這種電子表格工具中完成占比可視化。它考察的能力點是理解三種圖表餅圖 / 環形圖 / 華夫圖在視覺呈現比例信息上的差異能夠把任意數據集如課程自帶的蘑菇數據集的某一分類維度整理成 Excel 可用的數值結構能熟練操作 Excel 圖表功能甚至借助條件格式等技巧實現非原生圖表類型華夫圖。課程主文檔 3-Data-Visualization/11-visualization-proportions/README.md 中給出了一條明確的學習路徑先用 Python 理解數據分組邏輯再用三種圖表繪制比例關系最后可以回到 Excel 中做等價實踐——這正是本次作業的用意。數據準備先認識蘑菇數據集作業允許使用自選數據集課程推薦使用蘑菇數據集 data/mushrooms.csv。該數據來自 Audubon 對 Agaricus 和 Lepiota 兩科 23 種有鰓蘑菇的描述包含 8124 條樣本、23 個字段class、cap-shape、cap-surface、cap-color、bruises、odor、gill-、stalk-、veil-、ring-、spore-print-color、population、habitat 等字段全部為文本型object例如classcap-shapecap-surfacecap-colorbruisesodor...habitatPoisonousConvexSmoothBrownBruisesPungent...UrbanEdibleConvexSmoothYellowBruisesAlmond...GrassesEdibleBellSmoothWhiteBruisesAnise...Meadows在 Python 中加載并觀察數據import pandas as pd import matplotlib.pyplot as plt mushrooms pd.read_csv(data/mushrooms.csv) mushrooms.head()由于全部字段都是文本繪圖前需要把目標列轉換為 category 類型再按類別分組計數cols mushrooms.select_dtypes([object]).columns mushrooms[cols] mushrooms[cols].astype(category) edibleclass mushrooms.groupby([class]).count() edibleclass按 class有毒/可食分組后得到Edible 4208 條、Poisonous 3916 條。這就是后續繪制可食 vs 有毒餅圖的數據基礎。同理按 habitat棲息地分組可得到 7 個類別Grasses、Leaves、Meadows、Paths、Urban、Waste、Wood按 cap-color菌蓋顏色分組可得到 9 個類別brown、buff、cinnamon、green、pink、purple、red、white、yellow它們分別是環形圖與華夫圖的數據來源。課程配套的解答筆記本 3-Data-Visualization/11-visualization-proportions/solution/notebook.ipynb 中保留了完整的中間輸出結果可作為核對依據。Python 參考實現一餅圖Pie餅圖是最直觀的占比可視化方式。課程給出的參考實現如下labels [Edible, Poisonous] plt.pie(edibleclass[population], labelslabels, autopct%.1f %%) plt.title(Edible?) plt.show()關鍵參數說明labels扇區標簽數組順序必須與groupby結果的索引順序嚴格一致先 Edible 后 Poisonous否則標簽會張冠李戴autopct%.1f %%在扇區內部顯示保留一位小數的百分比plt.title(Edible?)為圖表添加標題。從圖中可以一眼看出可食與有毒蘑菇在樣本中的占比結構這正是比例可視化的核心價值。Python 參考實現二環形圖Donut環形圖本質上是中間挖空的餅圖視覺上更緊湊也更利于把信息聚焦在環形本身。課程以蘑菇的棲息地habitat分布為例habitat mushrooms.groupby([habitat]).count() habitatlabels [Grasses, Leaves, Meadows, Paths, Urban, Waste, Wood] plt.pie(habitat[class], labelslabels, autopct%1.1f%%, pctdistance0.85) center_circle plt.Circle((0, 0), 0.40, fcwhite) fig plt.gcf() fig.gca().add_artist(center_circle) plt.title(Mushroom Habitats) plt.show()實現環形圖的關鍵手法是在餅圖之上疊加一個白色圓形plt.pie(..., pctdistance0.85)把百分比標簽向內收縮到 0.85 半徑處避免與環形重疊plt.Circle((0, 0), 0.40, fcwhite)在原點創建一個半徑為 0.40 的白色圓fig.gca().add_artist(center_circle)把該圓疊加到已有圖表上從而挖出中間的空洞。調整內孔寬度只需修改0.40這個半徑值值越大內孔越寬、環形越細值越小內孔越窄、環形越粗。從倉庫中的 解答筆記本 可以看到同樣的實現被完整保留。此外環形圖的標簽可以通過調整位置、加大字號等方式進一步提升可讀性——這也是占比類圖表在實戰中常做的微調。Python 參考實現三華夫圖Waffle華夫圖用二維方塊陣列來表示數量比例每個方塊代表固定數量的樣本視覺上接近馬賽克瓷磚非常適合在信息密度高的場合展示占比。課程以菌蓋顏色cap-color分布為例需要先安裝輔助庫 PyWafflepip install pywaffle然后選擇數據分段并分組capcolor mushrooms.groupby([cap-color]).count() capcolor繪制華夫圖import pandas as pd import matplotlib.pyplot as plt from pywaffle import Waffle data {color: [brown, buff, cinnamon, green, pink, purple, red, white, yellow], amount: capcolor[class] } df pd.DataFrame(data) fig plt.figure( FigureClassWaffle, rows100, valuesdf.amount, labelslist(df.color), figsize(30, 30), colors[brown, tan, maroon, green, pink, purple, red, whitesmoke, yellow], )參數含義rows100華夫圖共 100 行配合總量可推算出每個方塊代表的樣本數總量 ÷ 方塊總數valuesdf.amount各分類的數值序列來自capcolor的分組計數labelslist(df.color)分類標簽順序與values一一對應colors[...]為每個分類指定方塊顏色這里按顏色名選擇了與真實菌蓋顏色相近的色值brown、tan、maroon、green、pink、purple、red、whitesmoke、yellow。從華夫圖中可以直觀看到綠色菌蓋的蘑菇數量相當多按解答筆記本中的計數Green 達 1856 條這與餅圖/環形圖給出的比例信息一致但呈現方式完全不同。在 Excel 中復刻三種圖表作業核心完成 Python 端的理解后回到作業本身在 Excel 中把三種圖表全部畫出來。結合 Excel 的常見操作方式可按以下思路進行1. 餅圖原生支持在 Excel 工作表中準備兩列數據一列是分類名稱如 Edible / Poisonous一列是對應的數值如 4208 / 3916選中數據區域點擊插入 → 餅圖選擇餅圖樣式即可通過圖表設計選項卡可調整配色、添加數據標簽與百分比顯示對應 Python 中的autopct。2. 環形圖原生支持使用同樣的分類 數值兩列數據在插入 → 餅圖下拉菜單中選擇圓環圖Doughnut即可直接得到環形效果——無需像 matplotlib 那樣手工疊加白色圓形右鍵圖表設置數據系列格式可調整圓環內徑大小對應 Python 中修改0.40半徑的效果數據標簽位置、百分比格式都可以在設置數據標簽格式中調整。3. 華夫圖借助條件格式實現Excel 沒有內置的華夫圖圖表類型常見做法是用條件格式構造方塊網格在一個 10×10或按總量取整的行列的單元格區域中根據各分類占比預先填充對應數量的占位值選中該區域使用開始 → 條件格式 → 新建規則 → 基于各自值設置所有單元格的格式按數值區間為不同分類賦予不同填充色調整行高列寬使單元格呈正方形即可得到與 PyWaffle 輸出等價的華夫網格效果。Excel 版華夫圖的關鍵是保證每個方塊代表相同數量的樣本這樣顏色塊的面積比例才與實際占比嚴格對應。評分標準與驗收清單作業附帶了明確的評分標準Rubric轉換為中文后如下優秀Exemplary合格Adequate需改進Needs Improvement提交的 Excel 工作表中包含全部三種圖表餅圖、環形圖、華夫圖提交的 Excel 工作表中包含兩種圖表提交的 Excel 工作表中僅包含一種圖表自測清單工作表中餅圖、環形圖、華夫圖三種圖表是否齊全三種圖表是否基于同一個數據集如蘑菇數據集且分類維度清晰華夫圖的方塊數量與占比是否與數據一致圖表標題、圖例、數據標簽是否完整可讀倉庫配套資源與延伸課程主文檔3-Data-Visualization/11-visualization-proportions/README.md——完整的 Python 教程與三種圖表講解解答筆記本3-Data-Visualization/11-visualization-proportions/solution/notebook.ipynb——帶全部運行輸出的可復現代碼包含 Edible 4208 / Poisonous 3916 及各 habitat、cap-color 分組計數R 語言對照版3-Data-Visualization/R/11-visualization-proportions/README.md——使用 dplyr ggplot2/webr 完成同樣的三種占比圖適合偏好 R 生態的讀者對照學習數據文件data/mushrooms.csv——8124 行 × 23 列的真實蘑菇分類數據。常見踩坑與建議標簽順序必須與分組索引一致無論 Python 還是 Excel餅圖扇區與標簽是按下標一一對應的順序錯位會導致有毒/可食標注顛倒務必核對groupby結果的索引順序。Excel 餅圖的數據區必須是數值文本型列如直接把 23 個蘑菇字段拖入圖表無法生成餅圖需要先用COUNTIF或數據透視表把分類匯總成數值列。華夫圖先定每格代表多少建議先確定網格總格數如 100再用總量 ÷ 格數反推每格數值四舍五入后保證各方塊數量總和與總量一致避免比例失真。圖表選型看信息量分類少2~5 類適合餅圖類別稍多且希望弱化中心區域時選環形圖需要以單位方塊精確傳遞數量感時選華夫圖。三種圖表表達的是同一份比例信息選擇標準是讀者能否最快、最準確地讀出占比。完成作業后可以嘗試把同樣的流程遷移到自選數據集如課程數據目錄中的 data/birds.csv、data/honey.csv 等進一步鞏固分組 → 選型 → 繪制的占比可視化方法論。【免費下載鏈接】Data-Science-For-Beginners10 Weeks, 20 Lessons, Data Science for All!項目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考