资源简介 (共29张PPT)第三节 利用matplotlib模块绘图信息技术 必修1 数据与计算数据处理与应用第四章必备知识练1. 在Python中引入 matplotlib的pyplot子库的方法是( )A. import pyplot B. import matplotlibC. import pyplot as plt D. import matplotlib.pyplot as plt【解析】 在Python引入matplotlib的 pyplot子库的方法:import matplotlib.pyplot as plt。D2. 下列关于Python语句plt.scatter(x, y1, label=“sin(x) ”) 的说法,正确的是( )A. 绘制的是线形图 B. 绘制的是垂直柱形图C. 绘制的是散点图 D. 绘制的是水平柱形图【解析】 scatter() 函数绘制的是散点图;plot() 绘制的是线形图;bar() 绘制的是垂直柱形图;barh()绘制的是水平柱形图。C3. 下列关于plt.plot(x, y1, label="sin(x)", color="r", linewidth=2) 的说法,错.误.的是( )A. 绘制的图像为线形图 B. color指定了图表的背景色C. label指定了图例 D. linewidth设置了线条的宽度【解析】 color指定了线条的颜色。B4. 有如下Python程序:import numpy as npfrom matplotlib import pyplot as pltx=np.arange(-5,5,0.1)y=np.sin(x)plt.plot(x,y)程序运行后,不显示运行结果,原因是( )A. 代码编写错误 B. X的范围超出边界C. Y的范围超出边界 D. 缺少语句plt.show()【解析】 本题主要考查Python程序的调试。plt.show()用于显示所绘制的图像。程序运行后,如果不显示运行结果,原因是缺少语句show()。D5. matplotlib模块是Python中较出色的绘图库,其中show函数的作用是( )A. 将点对连线 B. 将绘制的图像窗口显示出来C. 设置图像标题 D. 设置坐标轴标题【解析】 本题主要考查Python函数。matplotlib模块是Python中较出色的绘图库,其中的show函数的作用是将绘制的图像窗口显示出来。B6. 绘制sin(x)的图像如图所示。import matplotlib.pyplot as pltimport numpy as npx=np.linspace(0,20,100)y=np.sin(x) plt.legend()plt.show()横线上应填入的代码是( )A. plt.plot(x,"g--",label="sin(x)") B. plt.plot(x,y,"g--",label="sin(x)")C. plt.plot(x,y,"g--") D. plt.plot(y,"g--",label="sin(x)")【解析】 本题主要考查Python绘制sin(x)。图形是线形图,图例为“sin(x)”, plt.plot(x,y,"g--",label="sin(x)"),其中x是横坐标值,y是纵坐标值,“g--”是虚线,label=“sin(x)”是定义图例名称。B关键能力练7. 如图1所示,小明从某个网站上收集了2022年4月部分生产资料市场价格变动情况的数据,数据集保存在“shuju.xlsx”文件中。图1为分析相关类别生产资料的平均涨跌幅情况,小明编写了以下Python程序:import pandas as pdimport matplotlib.pyplot as pltplt.rcParams[ font.sans-serif ]=[ SimHei ]#正常显示中文字体df=pd.read_excel("shuju.xlsx")df["平均涨跌幅"]= (1) 通过数据计算添加“平均涨跌幅”列,请在横线上填入合适的代码:_______________________________________________________________________________________________________。 计算公式为涨跌幅=(本期价格-上期价格)/本期价格*100。(2) 若要对表格中的数据进行分类统计,并求其平均涨跌幅。请在横线上填入合适的代码:__________。 g=df.groupby("类别",as_index=False)df1= df1=df1.sort_values("平均涨跌幅",ascending=False)(df.本期价格-df.上期价格) / df.本期价格*100或(df["本期价格"]- df["上期价格"] )/ df["本期价格"]*100g.mean()(3) 如图2所示,根据上述操作结果,制作一张显示不同类别平均涨跌幅的图。图2请在横线上填入合适的代码:①_______________________,②_________________。 plt.figure(figsize=(8,4))plt.title("各种类别对比分析图")plt.bar( ① ,df1["平均涨跌幅"],label= 平均涨跌幅 ) plt.xlabel("类别")plt.ylabel( ② ) plt.legend()plt.show()df1["类别"] 或df.1类别“平均涨跌幅”【解析】 本题主要考查Python程序的综合应用。(1)涨跌幅=(本期价格-上期价格)/本期价格*100。故此处填(df.本期价格-df.上期价格) / df.本期价格*100 或(df["本期价格"]- df["上期价格"])/df["本期价格"]*100。(2)对表格中的数据进行分类统计,并求其平均涨跌幅,求平均值的函数是mean(),故此处填g.mean()。(3)由图可知,横坐标是类别,故①处填df1["类别"] 或df.1类别;由图可知,纵坐标是“平均涨跌幅”,故②处填"平均涨跌幅"。8. 如图1所示,小林收集了各地区的油价并存在文件“数据.xls”中,他对数据进行了如下操作:(1)将文件“数据.xls”中的数据导入对象df中;将数据中的“八.八”修改为8.8;(2)删除对象df中的“优惠”列,并更新对象df;(3)添加“平均油价”列,再进行相关计算,将对象df中的数据按地区降序排列;(4)筛选出对象df中数据“0号柴油”不大于8.4元的数据行,保存到对象d5中;(5)统计对象d5中的各个地域的地区个数,并绘制图表,如图2所示。图1图2import pandas as pdimport matplotlib.pyplot as pltplt.rc( font ,**{ family : SimHei })df=pd.read_excel( 数据.xls )df. ① =8.8 df=df. ② df[ 平均油价 ]=(df[ 92 号汽油 ]+df[ 95号汽油 ]+df[ 0 号柴油 ])/3df=df.sort_values( 地区 ,ascending=False)d5= ③ g=d5. ④ [ 地 区 ].count() plt.bar(g.index,g.values)plt.title("地域分布图")plt.show()请在横线上填入合适的代码:①_________________,②____________________________ _________________________,③________________________,④___________________。 at[19, 92号汽油 ]drop( 优惠 ,axis=1)或drop(columns= 优惠 )df[df[ 0 号柴油 ]<=8.4]groupby( 地域 )【解析】 本题主要考查Python程序的综合应用。数据导入 pandas,第一行为列标题行,“北京”这条记录所在行索引为 0,故“云南”这条记录所在行索引为 19,故①处答案为 at[19, 92 号汽油 ];②处要删除“优惠”列,故答案为 drop( 优惠 ,axis=1);③处为对象 df 的条件筛选,故答案为 df[df[ 0 号柴油 ]<=8.4],由于“0号柴油”不可作为属性名,这里只能用字典记法表示列信息,不可写成 df[df.0 号柴油<=8.4];题目要求数据按“地域”进行分组,并只统计“地区”个数,故④处答案为 groupby( 地域 )。9. 小明编写了Python程序对数据做了如下整理和分析:(1) 将第2条记录中的单位“厅”改为“听”,将“总价”列的名称改为“售价”,并删除第4条记录,计算各商品售价(售价=原价*0.8)。(2) 按“商品类别”分类统计各类商品的品种数量,并按各类商品的“品种数量”降序排列,以柱形图形式显示品种数量最多的10类商品,所建立的图表如图2所示。图1图2Python程序如下,请在横线上填入合适的代码:①____________________,②______________,③__________,④_________________________________________。 import pandas as pdimport matplotlib.pyplot as pltplt.rcParams["font.sans-serif"]=["SimHei"] #用于显示中文标签data = pd.read_excel("商品价格表.xlsx")data. ① #将第2条记录的单位“厅”改为“听” data = data.rename(columns = {"总价":"售价"}) #将“总价”列的名称改为“售价”data = ② #删除第4条记录 data["售价"] = data["原价"] * 0.8s = data.groupby("商品类别",as_index=False).商品名称. ③ #按商品类别统计商品品种数量s = s.rename(columns = {"商品名称":"品种数量"}) 将分组统计后的 “商品名称”列的名称改为 “品种数量” s = s. ④ #按商品类别的品种数量降序排列 s= s.head(10)plt.bar(s.商品类别 , s.品种数量,label="品种数量") #绘制柱形图plt.title("品种最多的 10 大商品类别", fontsize=16)plt.legend()plt.show ()at[1,"单位"]="听"data.drop(3)count()sort_values( 品种数量 ,ascending=False)【解析】 本题主要考查Python程序的综合运用。将第2条记录的单位“厅”修改为“听”,df.at的作用是获取某个位置上的值,可以使用该函数进行内容修改,故①处填df.at[1,"单位"]="听";删除第4条记录,使用drop函数,故②处填data.drop(3);按商品类别统计商品品种数量,使用count()函数,故③处填count();按商品类别的品种数量降序排列,使用sort_values()函数,因为是降序排序,所以还要加ascending=False,故④处填sort_values( 品种数量 ,ascending=False)。10. 如图1所示, 高一、高二年级学生的社团选报数据已导出,存放在“社团选课.xlsx”文件中。小北同学结合所学知识, 编写了一个统计各社团受欢迎程度的程序,以图表的形式呈现最受欢迎的八个社团。部分程序代码如下, 请在横线上填入合适的代码:①___________________________________________________________________________ _____________________,②_____________,③_______________________,④__________________________________________________________________________ ____________________。 data.drop( 姓名 ,axis=1)或data.drop( 姓名 ,1)或data.drop("姓名",axis=1)或data.drop("姓名",1)sort_valuesascending=Falsedata.index[0:8]或 data.index[:8]或data.head(8).index或 data[0:8].index或data[:8].index图1图2import pandas as pdimport matplotlib.pyplot as pltplt.rcParams["font.sans-serif"]=["SimHei"]data=pd.read_excel("社团选课.xlsx")data=data.groupby("课程名称").count() #统计各社团的报名人数data= ① #删除"姓名"列 data=data.rename(columns={"班级":"人数"})data=data. ② ("人数", ③ ) #根据选课人数降序排列 plt.bar( ④ , data.人数[0:8], label="社团报名人数") plt.title("最受欢迎的八大社团", fontsize=18) #设置图表标题plt.legend()plt.show ()【解析】 本题主要考查Python程序的综合应用。删除“姓名”列,使用drop( )函数,默认删除行,列需要加axis=1,故①处填data.drop( 姓名 ,axis=1)或data.drop( 姓名 ,1)或data.drop("姓名",axis=1)或data.drop("姓名",1);根据选课人数降序排序,使用sort_values函数,故②处填sort_values;ascending=False是降序排序,ascending=True是升序排序,故③处填ascending=False;由图可知,需要绘制前8条,故④处填data.index[0:8]或 data.index[:8]或data.head(8).index或 data[0:8].index或data[:8].index。11.用Excel文件列出了2023年胡润百富榜上前50名女企业家,如图1所示,相关数据保存在文件“排行榜.xlsx”中。要求编写Python程序来分析榜单数据,并对分析结果进行可视化。(1)从Excel文件中读取数据,请在横线上填入合适的代码:_______________。 import pandas as pdimport matplotlib.pyplot as pltdata=pd.read_excel( ) 图1"排行榜.xlsx"(2)下列可修改“排名:2,姓名:吴亚军”行的年龄列的表达式有__________(多选,填字母)。 A.data.at[1,"年龄"]=65B.data[1]["年龄"]=65C.data["年龄"][1]=65D.data.at[1,年龄]=65AC(3)统计平均排名最高的主业,如图2所示。图2add=data.groupby("主业"). add_s=add.sort_values("排名")print(add_s.head(1))在程序中的横线上填写代码,正确的选项是__________(单选,填字母)。 A.average() B.mean()C.sum() D.count()B(4)统计排行榜中的各居住地的企业数量,取数量最高的前5个省(区、市)的数据建立柱形图,如图3所示,请在横线上填入合适的代码:①_________,②_______________________。 pro=data.groupby( ① ,as_index=False).count() pro_s=pro.sort_values("排名",ascending=False).head(5)plt.bar( ② ,label="居住地") plt.legend()plt.show()图3"居住地"pro_s.居住地, pro_s.排名【解析】 本题考查pandas数据处理。(1)Excel文件名。(2)单元格有两种表达式,先列后行,即C,也可以使用at的方法,先行后列,即A。(3)求平均值使用函数mean()。(4)统计排行榜中各居住地的企业数量,因此对“居住地”进行分组。绘图时使用横坐标和纵坐标,根据代码可知,分别是pro_s.居住地, pro_s.排名。第三节 利用matplotlib模块绘图1. 在Python中引入matplotlib的pyplot子库的方法是( D )A. import pyplot B. import matplotlibC. import pyplot as plt D. import matplotlib.pyplot as plt【解析】 在Python引入matplotlib的 pyplot子库的方法:import matplotlib.pyplot as plt。2. 下列关于Python语句plt.scatter(x, y1, label=“sin(x) ”)的说法,正确的是( C )A. 绘制的是线形图 B. 绘制的是垂直柱形图C. 绘制的是散点图 D. 绘制的是水平柱形图【解析】 scatter() 函数绘制的是散点图;plot() 绘制的是线形图;bar() 绘制的是垂直柱形图;barh()绘制的是水平柱形图。3. 下列关于plt.plot(x, y1, label="sin(x)", color="r", linewidth=2) 的说法,错误的是( B )A. 绘制的图像为线形图 B. color指定了图表的背景色C. label指定了图例 D. linewidth设置了线条的宽度【解析】 color指定了线条的颜色。4. 有如下Python程序:import numpy as npfrom matplotlib import pyplot as pltx=np.arange(-5,5,0.1)y=np.sin(x)plt.plot(x,y)程序运行后,不显示运行结果,原因是( D )A. 代码编写错误 B. X的范围超出边界C. Y的范围超出边界 D. 缺少语句plt.show()【解析】 本题主要考查Python程序的调试。plt.show()用于显示所绘制的图像。程序运行后,如果不显示运行结果,原因是缺少语句show()。5. matplotlib模块是Python中较出色的绘图库,其中show函数的作用是( B )A. 将点对连线 B. 将绘制的图像窗口显示出来C. 设置图像标题 D. 设置坐标轴标题【解析】 本题主要考查Python函数。matplotlib模块是Python中较出色的绘图库,其中show函数的作用是将绘制的图像窗口显示出来。6. 绘制sin(x)的图像如下图所示。第6题图import matplotlib.pyplot as pltimport numpy as npx=np.linspace(0,20,100)y=np.sin(x) plt.legend()plt.show()横线上应填入的代码是( B )A. plt.plot(x,"g--",label="sin(x)")B. plt.plot(x,y,"g--",label="sin(x)")C. plt.plot(x,y,"g--")D. plt.plot(y,"g--",label="sin(x)")【解析】 本题主要考查Python绘制sin(x)。图形是线形图,图例为“sin(x)”,plt.plot(x,y,"g--",label="sin(x)"),其中x是横坐标值,y是纵坐标值,“g--”是虚线,label=“sin(x)”是定义图例名称。7. 如图1所示,小明从某个网站上收集了2022年4月部分生产资料市场价格变动情况的数据,数据集保存在“shuju.xlsx”文件中。第7题图1为分析相关类别生产资料的平均涨跌幅情况,小明编写了以下Python程序:import pandas as pdimport matplotlib.pyplot as pltplt.rcParams[ font.sans-serif ]=[ SimHei ]#正常显示中文字体df=pd.read_excel("shuju.xlsx")df["平均涨跌幅"]= (1) 通过数据计算添加“平均涨跌幅”列,请在横线上填入合适的代码: (df.本期价格-df.上期价格) / df.本期价格*100或(df["本期价格"]- df["上期价格"] )/df["本期价格"]*100 。计算公式为涨跌幅=(本期价格-上期价格)/本期价格*100。(2) 若要对表格中的数据进行分类统计,并求其平均涨跌幅。请在横线上填入合适的代码: g.mean() 。g=df.groupby("类别",as_index=False)df1= df1=df1.sort_values("平均涨跌幅",ascending=False)(3) 如图2所示,根据上述操作结果,制作一张显示不同类别平均涨跌幅的图。第7题图2请在横线上填入合适的代码:① df1["类别"] 或df.1类别 ,② “平均涨跌幅” 。plt.figure(figsize=(8,4))plt.title("各种类别对比分析图")plt.bar( ① ,df1["平均涨跌幅"],label= 平均涨跌幅 ) plt.xlabel("类别")plt.ylabel( ② )plt.legend()plt.show()【解析】 本题主要考查Python程序的综合应用。(1)涨跌幅=(本期价格-上期价格)/本期价格*100。故此处填(df.本期价格-df.上期价格)/df.本期价格*100或(df["本期价格"]- df["上期价格"])/df["本期价格"]*100。(2)对表格中的数据进行分类统计,并求其平均涨跌幅,求平均值的函数是mean(),故此处填g.mean()。(3)由图可知,横坐标是类别,故①处填df1["类别"]或df.1类别;由图可知,纵坐标是“平均涨跌幅”,故②处填"平均涨跌幅"。8. 如图1所示,小林收集了各地区的油价并存在文件“数据.xls”中,他对数据进行了如下操作:(1)将文件“数据.xls”中的数据导入对象df中;将数据中的“八.八”修改为8.8;(2)删除对象df中的“优惠”列,并更新对象df;(3)添加“平均油价”列,再进行相关计算,将对象df中的数据按地区降序排列;(4)筛选出对象df中数据“0号柴油”不大于8.4元的数据行,保存到对象d5中;(5)统计对象d5中的各个地域的地区个数,并绘制图表,如图2所示。第8题图1第8题图2import pandas as pdimport matplotlib.pyplot as pltplt.rc( font ,**{ family : SimHei })df=pd.read_excel( 数据.xls )df. ① =8.8df=df. ② df[ 平均油价 ]=(df[ 92 号汽油 ]+df[ 95号汽油 ]+df[ 0 号柴油 ])/3df=df.sort_values( 地区 ,ascending=False)d5= ③ g=d5. ④ [ 地 区 ].count()plt.bar(g.index,g.values)plt.title("地域分布图")plt.show()请在横线上填入合适的代码:① at[19, 92 号汽油 ] ,② drop( 优惠 ,axis=1) 或 drop(columns= 优惠 ) ,③ df[df[ 0 号柴油 ]<=8.4] ,④ groupby( 地域 ) 。【解析】 本题主要考查Python程序的综合应用。数据导入pandas,第一行为列标题行,“北京”这条记录所在行索引为 0,故“云南”这条记录所在行索引为19,故①处答案为at[19, 92号汽油 ];②处要删除“优惠”列,故答案为drop( 优惠 ,axis=1);③处为对象df的条件筛选,故答案为df[df[ 0号柴油 ]<=8.4],由于“0号柴油”不可作为属性名,这里只能用字典记法表示列信息,不可写成df[df.0号柴油<=8.4];题目要求数据按“地域”进行分组,并只统计“地区”个数,故④处答案为groupby( 地域 )。9. 小明编写了Python程序对数据做了如下整理和分析:(1) 将第2条记录中的单位“厅”改为“听”,将“总价”列的名称改为“售价”,并删除第4条记录,计算各商品售价(售价=原价*0.8)。(2) 按“商品类别”分类统计各类商品的品种数量,并按各类商品的“品种数量”降序排列,以柱形图形式显示品种数量最多的10类商品,所建立的图表如图2所示。第9题图1第9题图2Python程序如下,请在横线上填入合适的代码:① at[1,"单位"]="听" ,② data.drop(3) ,③ count() ,④ sort_values( 品种数量 ,ascending=False) 。import pandas as pdimport matplotlib.pyplot as pltplt.rcParams["font.sans-serif"]=["SimHei"] #用于显示中文标签data = pd.read_excel("商品价格表.xlsx")data. ① #将第2条记录的单位“厅”改为“听”data = data.rename(columns = {"总价":"售价"}) #将“总价”列的名称改为“售价”data = ② #删除第4条记录data["售价"] = data["原价"] * 0.8s = data.groupby("商品类别",as_index=False).商品名称. ③ #按商品类别统计商品品种数量s = s.rename(columns = {"商品名称":"品种数量"}) 将分组统计后的 “商品名称”列的名称改为 “品种数量” s = s. ④ #按商品类别的品种数量降序排列s= s.head(10)plt.bar(s.商品类别 , s.品种数量,label="品种数量") #绘制柱形图plt.title("品种最多的 10 大商品类别", fontsize=16)plt.legend()plt.show ()【解析】 本题主要考查Python程序的综合运用。将第2条记录的单位“厅”修改为“听”,df.at的作用是获取某个位置上的值,可以使用该函数进行内容修改,故①处填df.at[1,"单位"]="听";删除第4条记录,使用drop函数,故②处填data.drop(3);按商品类别统计商品品种数量,使用count()函数,故③处填count();按商品类别的品种数量降序排列,使用sort_values()函数,因为是降序排序,所以还要加ascending=False,故④处填sort_values( 品种数量 ,ascending=False)。10. 如图1所示, 高一、高二年级学生的社团选报数据已导出,存放在“社团选课.xlsx”文件中。小北同学结合所学知识, 编写了一个统计各社团受欢迎程度的程序,以图表的形式呈现最受欢迎的八个社团。部分程序代码如下, 请在横线上填入合适的代码:① data.drop( 姓名 ,axis=1)或data.drop( 姓名 ,1)或data.drop("姓名",axis=1)或data.drop("姓名",1) ,② sort_values ,③ ascending=False ,④ data.index[0:8]或 data.index[:8]或data.head(8).index或 data[0:8].index或data[:8].index 。import pandas as pdimport matplotlib.pyplot as pltplt.rcParams["font.sans-serif"]=["SimHei"]data=pd.read_excel("社团选课.xlsx")data=data.groupby("课程名称").count() #统计各社团的报名人数data= ① #删除"姓名"列data=data.rename(columns={"班级":"人数"})data=data. ② ("人数", ③ ) #根据选课人数降序排列plt.bar( ④ , data.人数[0:8], label="社团报名人数")plt.title("最受欢迎的八大社团", fontsize=18) #设置图表标题plt.legend()plt.show ()第10题图1第10题图2【解析】 本题主要考查Python程序的综合应用。删除“姓名”列,使用drop( )函数,默认删除行,列需要加axis=1,故①处填data.drop( 姓名 ,axis=1)或data.drop( 姓名 ,1)或data.drop("姓名",axis=1)或data.drop("姓名",1);根据选课人数降序排序,使用sort_values函数,故②处填sort_values;ascending=False是降序排序,ascending=True是升序排序,故③处填ascending=False;由图可知,需要绘制前8条,故④处填data.index[0:8]或 data.index[:8]或data.head(8).index或 data[0:8].index或data[:8].index。11.用Excel文件列出了2023年胡润百富榜上前50名女企业家,如图1所示,相关数据保存在文件“排行榜.xlsx”中。要求编写Python程序来分析榜单数据,并对分析结果进行可视化。(1)从Excel文件中读取数据,请在横线上填入合适的代码: "排行榜.xlsx" 。import pandas as pdimport matplotlib.pyplot as pltdata=pd.read_excel( )第11题图1(2)下列可修改“排名:2,姓名:吴亚军”行的年龄列的表达式有 AC (多选,填字母)。A.data.at[1,"年龄"]=65B.data[1]["年龄"]=65C.data["年龄"][1]=65D.data.at[1,年龄]=65(3)统计平均排名最高的主业,如图2所示。第11题图2add=data.groupby("主业"). add_s=add.sort_values("排名")print(add_s.head(1))在程序中的横线上填写代码,正确的选项是 B (单选,填字母)。A.average( ) B.mean( )C.sum( ) D.count( )(4)统计排行榜中的各居住地的企业数量,取数量最高的前5个省(区、市)的数据建立柱形图,如图3所示,请在横线上填入合适的代码:① "居住地" ,② pro_s.居住地, pro_s.排名 。pro=data.groupby( ① ,as_index=False).count()pro_s=pro.sort_values("排名",ascending=False).head(5)plt.bar( ② ,label="居住地") plt.legend()plt.show()第11题图3【解析】 本题考查pandas数据处理。(1)Excel文件名。(2)单元格有两种表达式,先列后行,即C,也可以使用at的方法,先行后列,即A。(3)求平均值使用函数mean()。(4)统计排行榜中各居住地的企业数量,因此对“居住地”进行分组。绘图时使用横坐标和纵坐标,根据代码可知,分别是pro_s.居住地,pro_s.排名。 展开更多...... 收起↑ 资源列表 第三节 利用matplotlib模块绘图.docx 第三节 利用matplotlib模块绘图.pptx