第七单元 7.2 项目2 活动数据可视化(课件)-《Python程序设计基础》(高等教育出版社)同步精品课堂

2026-05-08
| 38页
| 111人阅读
| 1人下载
精品

内容正文:

第七单元 7.2 项目2 活动数据可视化 Python程序设计基础 同步精品课堂 高等教育出版社 任务一 安装matplotlib 任务二 绘制各班参赛人数柱形图 任务三 绘制参赛选手性别分布饼图 掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。 教学目标 一 1、掌握 matplotlib 第三方库的安装方法 2、掌握 bar() 绘制柱状图的方法 3、掌握 pie() 绘制饼图的方法 4、能够对 CSV 数据进行统计并可视化 教学重难点 二 教学重点: 1、理解和掌握matplotlib的常用方法 2、能够对数据进行可视化操作 教学难点: 能够对数据进行可视化操作 导入新课 三 端午节是中华民族重要的传统佳节,包粽子和赛龙舟是端午节的重要节庆内容。学校在端午节举办了包粽子比赛,收集了大量参赛数据,包括:学号、姓名、性别、班级、评委评分等。 思考:我们如何直观地向校领导展示各班级的参与热情? 如何清晰地呈现男女生的参与比例? 任务一 安装matplotlib 机位固定:摄像机本身不移动(如不推、拉、摇、移)。 新知讲授 四 1、Python库的分类与特点 Python标准库:Python安装时自带,可直接导入使用,例如csv(文件处理)、math(数学计算)、random(随机数生成)等,无需额外下载安装。 Python第三方库:需额外下载安装的扩展库,如matplotlib(数据可视化)、pandas(数据处理)、numpy(数值计算)等,提供更丰富的专业功能。 两类库的核心区别:标准库随Python环境一同部署,开箱即用;第三方库需通过工具(如pip)单独安装,以扩展Python在特定领域的应用能力。 机位固定:摄像机本身不移动(如不推、拉、摇、移)。 新知讲授 四 2、matplotlib库简介 matplotlib是专门用于数据可视化的绘图库,可将抽象数据转化为直观图表,帮助用户快速理解数据特征与规律,能够与其他库(pandas、numpy)无缝配合。 高度可定制,如颜色、标签、图例、网格等 机位固定:摄像机本身不移动(如不推、拉、摇、移)。 新知讲授 四 3、安装方法 方法一:命令行安装 ① 打开命令提示符(Win+R → cmd) ② 输入 pip install matplotlib ③ 等待下载安装完成 机位固定:摄像机本身不移动(如不推、拉、摇、移)。 新知讲授 四 3、安装方法 方法二:PyCharm安装 ① 文件 → 设置 → Python解释器 ② 点击“+”号 ③ 搜索“matplotlib” ④ 选择版本,点击“安装” 机位固定:摄像机本身不移动(如不推、拉、摇、移)。 新知讲授 四 4、实践操作 打开命令提示符 输入 pip install matplotlib 等待安装完成 输入 python 进入交互模式 输入 import matplotlib,无报错即成功 在自己的电脑上安装matplotlib并验证 机位固定:摄像机本身不移动(如不推、拉、摇、移)。 新知讲授 四 5、安装常见问题与解决 网络问题:安装过程中出现网络连接超时或下载速度缓慢。 权限问题:在命令行安装时出现“Permission denied”等权限不足提示。 更换国内镜像源,使用命令“pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib”. 以管理员身份运行命令提示符,在开始菜单中找到“命令提示符”,右键点击并选择“以管理员身份运行”,然后再执行安装命令。 PyCharm中找不到解释器:在Python解释器设置中未找到已安装的Python环境。 点击“添加”按钮,选择“现有环境”,浏览并选择本地已安装Python的可执行文件(如python.exe),添加后再进行matplotlib的安装。 任务二 绘制各班参赛人数柱形图 机位固定:摄像机本身不移动(如不推、拉、摇、移)。 新知讲授 四 1、柱状图的适用场景 比较不同类别之间的数据,通过柱子高度直观展示各类别数值差异。 各班级人数柱形图 各产品销量柱形图 各城市 GDP 柱形图 机位固定:摄像机本身不移动(如不推、拉、摇、移)。 新知讲授 四 2、bar()函数参数详解 plt.bar(x, height, width=0.8, bottom=None, align='center', color=None, label=None) 参数 说明 示例 x x轴上的位置(可以是字符串列表或数字列表) ['计算机1班','计算机2班'] height 柱子的高度(数值) [3, 2, 2] width 柱子宽度,默认0.8 width=0.5(窄一些) color 柱子填充颜色 color='red' 或 color='#FF5733' label 图例标签 label='参赛人数' alpha 透明度(0~1) alpha=0.7 新知讲授 四 plt.title() 设置标题 4、图表美化函数汇总 如:plt.title('标题', fontsize=14) plt.xlabel() 设置x轴标签 如:plt.xlabel('班级') plt.ylabel() 设置y轴标签 如:plt.ylabel('人数') plt.xticks() 设置x轴刻度 如:plt.xticks(rotation=45)(旋转45度) plt.yticks() 设置y轴刻度 如:plt.yticks([0,2,4,6]) plt.ylim() 设置y轴范围 如:plt.ylim(0, 10) plt.legend() 显示图例 如:plt.legend() plt.grid() 显示网格 如:plt.grid(True, linestyle='--') 机位固定:摄像机本身不移动(如不推、拉、摇、移)。 新知讲授 四 5、柱形图绘制实现思路:①读取CSV并提取班级 import csv # 存储班级信息的列表 class_list = [] # 打开CSV文件 with open('zongzi_contest.csv', 'r', encoding='utf-8') as f: reader = csv.reader(f) next(reader) # 跳过标题行 for row in reader: class_list.append(row[3]) # 假设班级在第4列(索引3) print(class_list) # 输出:['计算机1班', '计算机1班', '计算机2班', ...] with open() 自动管理文件关闭 next(reader) 跳过标题行,防止把“班级”也算进去 row[3] 表示第4列(索引从0开始) 机位固定:摄像机本身不移动(如不推、拉、摇、移)。 新知讲授 四 5、柱形图绘制实现思路:②统计班级人数 # 获取所有不重复的班级名称 unique_classes = set(class_list) # 创建字典存储统计结果 class_count = {} for cls in unique_classes: class_count[cls] = class_list.count(cls) print(class_count) # 输出:{'计算机1班': 3, '计算机2班': 2, '计算机3班': 2} class_list(列表) 计算机1班,计算机1班,计算机2班,计算机3班,计算机1班,计算机2班 set去重(集合) 计算机1班,计算机2班,计算机3班 字典统计 计算机1班:3,计算机2班:2, 计算机3班:1 机位固定:摄像机本身不移动(如不推、拉、摇、移)。 新知讲授 四 5、柱形图绘制实现思路:③绘制柱状图 import matplotlib.pyplot as plt x = list(class_count.keys()) # x轴:班级名称 y = list(class_count.values()) # y轴:人数 plt.bar(x, y, width=0.6, color='skyblue') plt.title('各班级包粽子比赛参赛人数统计', fontsize=16) plt.xlabel('班级', fontsize=12) plt.ylabel('参赛人数(人)', fontsize=12) for i, v in enumerate(y): plt.text(i, v + 0.2, str(v), ha='center') plt.show() 新知讲授 四 6、实践操作:使用提供的CSV文件,绘制各班参赛人数柱状图 正确读取CSV文件,提取班级列 统计各班人数 绘制柱状图,柱子颜色自选 添加标题、x轴标签、y轴标签 在每个柱子上方显示具体人数 将图表保存为图片文件 任务三 绘制参赛选手性别分布饼图 机位固定:摄像机本身不移动(如不推、拉、摇、移)。 新知讲授 四 1、饼图的适用场景 用于展示各部分占总体的比例 性别比例饼图 市场份额饼图 预算分配饼图 机位固定:摄像机本身不移动(如不推、拉、摇、移)。 新知讲授 四 2、pie()函数参数详解 plt.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, startangle=0, radius=1) 参数 说明 示例 x 各部分的数据(列表) [15, 10] labels 各部分标签 ['男', '女'] autopct 显示百分比格式 '%1.1f%%'(一位小数);%1.2f%%:保留2位小数;'%d%%'(整数);'%.0f%%'(四舍五入取整) startangle 起始绘制角度(度) startangle=90(从顶部开始) colors 颜色列表 ['blue', 'pink'] explode 分离某一块 [0.1, 0](第一块分离) shadow 是否添加阴影 shadow=True 机位固定:摄像机本身不移动(如不推、拉、摇、移)。 新知讲授 四 3、饼图绘制实现思路:①提取并统计性别 import csv gender_list = [] with open('zongzi_contest.csv', 'r', encoding='utf-8') as f: reader = csv.reader(f) next(reader) for row in reader: gender_list.append(row[2]) # 假设性别在第3列(索引2) male_count = gender_list.count('男') female_count = gender_list.count('女') print(f'男生人数:{male_count}') print(f'女生人数:{female_count}') 机位固定:摄像机本身不移动(如不推、拉、摇、移)。 新知讲授 四 3、饼图绘制实现思路:②绘制饼图 import matplotlib.pyplot as plt # 数据 sizes = [male_count, female_count] labels = [f'男生 {male_count}人', f'女生 {female_count}人'] colors = ['lightblue', 'lightcoral'] # 绘制饼图 plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90, colors=colors) # 添加标题 plt.title('包粽子比赛参赛选手性别比例') plt.show() 新知讲授 四 4、实践操作:使用提供的CSV文件,绘制性别分布饼图 基础任务 正确统计男女生人数 饼图显示人数和百分比 设置不同的颜色 添加标题 保存图片 进阶挑战 使用explode突出显示女生板块 添加阴影效果 调整起始角度为0度(从右侧开始) 师生互动 五 1、在绘制柱状图时,如何让每个柱子上方显示具体的人数数值? 2、plt.bar() 和 plt.pie() 分别适合展示什么类型的数据? 3、在绘制饼图时,图表中的中文显示为方框,可能是什么原因?如何解决? 答案: 1、使用 plt.text() 函数,遍历每个柱子的位置和高度,在上方添加文本,例如 plt.text(i, v+0.2, str(v))。 2、bar() 适合比较各类别数据大小;pie() 适合展示部分占比。 3、未设置中文字体。解决:添加 plt.rcParams['font.sans-serif'] = ['SimHei'] 和 plt.rcParams['axes.unicode_minus'] = False。 随堂练习 六 1 、在柱形图上添加数值标签使用的函数是( ) A. label() B. annotate() C. text() D. show() 答案:C 解析:text()可以在指定坐标位置添加文本标签。 随堂练习 六 2 、下列( )参数用于设置饼图中每一块的分离程度? A. labels B. autopct C. explode D. shadow 答案:C 解析:explode参数用于设置饼图中某一块偏离圆心的距离。 随堂练习 六 3 、( )用于设置x轴刻度位置和标签。 A. xlabel() B. xticks() C. xlim() D. axis() 答案:B 解析:xticks()用于设置x轴刻度的位置和对应的标签。 随堂练习 六 4 、在matplotlib中,用于创建新图形的函数是( ) A. plot() B. figure() C. show() D. subplot() 答案:B 解析:figure()用于创建一个新的图形窗口或激活已有图形。 随堂练习 六 5 、(多项选择题)( )是plt.pie()常用的参数? A. explode B. labels C. autopct D. startangle 答案:ABCD 解析:explode(分离度)、labels(标签)、autopct(百分比格式)、startangle(起始角度)都是pie()常用参数。 随堂练习 六 6 、(多项选择题)下列( )方式可以安装matplotlib库? A. pip install matplotlib B. 在PyCharm解释器中安装 C. conda install matplotlib D. 直接复制文件 答案:ABC 解析:可以通过pip、conda或IDE内置工具安装,直接复制文件不是正确安装方式。 随堂练习 六 7、(是非选择题)next(reader)函数用于读取CSV文件的最后一行。 A.正确 B.错误 答案:B 解析:next(reader)读取下一行,常用于跳过表头。 随堂练习 六 8、(是非选择题)savefig()函数必须在show()之后调用才能保存图片。 A.正确 B.错误 答案:B 解析:savefig()应在show()之前调用,否则可能保存空白图片。 随堂练习 六 9、matplotlib可以与 、 等 无缝集成,为数据分析师和科学家提供了从 到 的完整解决方案。 答案:Numpy Pandas 数据处理库 数据处理 可视化 解析:matplotlib可以与Numpy、Pandas等数据处理库无缝集成,为数据分析师和科学家提供了从数据处理到可视化的完整解决方案。 课堂小结 七 谢谢 $

资源预览图

第七单元 7.2 项目2 活动数据可视化(课件)-《Python程序设计基础》(高等教育出版社)同步精品课堂
1
第七单元 7.2 项目2 活动数据可视化(课件)-《Python程序设计基础》(高等教育出版社)同步精品课堂
2
第七单元 7.2 项目2 活动数据可视化(课件)-《Python程序设计基础》(高等教育出版社)同步精品课堂
3
第七单元 7.2 项目2 活动数据可视化(课件)-《Python程序设计基础》(高等教育出版社)同步精品课堂
4
第七单元 7.2 项目2 活动数据可视化(课件)-《Python程序设计基础》(高等教育出版社)同步精品课堂
5
第七单元 7.2 项目2 活动数据可视化(课件)-《Python程序设计基础》(高等教育出版社)同步精品课堂
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。