ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Data-Science-For-Beginners 占比可视化实战:在 Excel 与 Python 中制作饼图、环形图与华夫图

Data-Science-For-Beginners 占比可视化实战:在 Excel 与 Python 中制作饼图、环形图与华夫图 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),仅供参考
返回列表