




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
繪制各班專業(yè)課平均成績柱狀圖
項目六 繪制圖表繪制單個圖表問題描述某學校期末考試學生成績如表6.1.1所示。表6.1.1學生專業(yè)課成績表現(xiàn)要求按班級統(tǒng)計各科目的平均分,并采用柱狀圖的形式展示結果??继栃彰詣e班級C語言(70分)數(shù)據(jù)結構(70分)算法分析(60分)2022020419邱俊松男2019級計算機1班6753532022020437胡艷女2019級計算機1班6754522022020760孔航女2019級計算機2班6752542022020793黃莉女2019級計算機2班6455532022020772古瑞男2019級計算機2班616050.....................2022020088卿成男2019級計算機3班165132022020092歐金霞女2019級計算機3班106172022020799晏麗女2019級計算機2班79172022020440肖權利男2019級計算機1班85122022020430齊云瑞男2019級計算機1班000輸出結果圖6.1.1各班專業(yè)課平均成績柱狀圖每組三個矩形條(藍、橙、綠)表示一個班的專業(yè)課平均成績,從左往右第一個是C語言平均成績,第二個是數(shù)據(jù)結構平均成績,第三個是算法分析平均成績。題前思考繪制各班專業(yè)課平均成績柱狀圖。問題描述問題解答怎樣提取繪圖用到的數(shù)據(jù)列?
怎樣分班級求課程平均成績?
結合輸出結果,探討什么是柱狀圖?
繪制各班專業(yè)課平均成績柱狀圖。importpandasaspdfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falsegrade=pd.read_excel(r"D:\pydata\項目六\計算機專業(yè)成績.xlsx")grade=grade.loc[:,['班級','C語言(70分)','數(shù)據(jù)結構(70分)','算法分析(60分)']]res=grade.groupby('班級').agg('mean') res.plot(kind='bar',rot=0,title='各班專業(yè)課平均成績柱狀圖',figsize=(16,9))plt.show()程序代碼繪制各班專業(yè)課平均成績柱狀圖。importpandasaspdfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']①plt.rcParams['axes.unicode_minus']=Falsegrade=pd.read_excel(r"D:\pydata\項目六\計算機專業(yè)成績.xlsx")grade=grade.loc[:,['班級','C語言(70分)','數(shù)據(jù)結構(70分)','算法分析(60分)']]res=grade.groupby('班級').agg('mean') res.plot(kind='bar',rot=0,title='各班專業(yè)課平均成績柱狀圖',figsize=(16,9))plt.show()程序代碼設置顯示中文字體,否則中文顯示亂碼。繪制各班專業(yè)課平均成績柱狀圖。importpandasaspdfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']①plt.rcParams['axes.unicode_minus']=False②grade=pd.read_excel(r"D:\pydata\項目六\計算機專業(yè)成績.xlsx")grade=grade.loc[:,['班級','C語言(70分)','數(shù)據(jù)結構(70分)','算法分析(60分)']]res=grade.groupby('班級').agg('mean') res.plot(kind='bar',rot=0,title='各班專業(yè)課平均成績柱狀圖',figsize=(16,9))plt.show()程序代碼設置正常顯示負號。①和②是固定寫法。繪制各班專業(yè)課平均成績柱狀圖。importpandasaspdfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']①plt.rcParams['axes.unicode_minus']=False②grade=pd.read_excel(r"D:\pydata\項目六\計算機專業(yè)成績.xlsx")③grade=grade.loc[:,['班級','C語言(70分)','數(shù)據(jù)結構(70分)','算法分析(60分)']]res=grade.groupby('班級').agg('mean') res.plot(kind='bar',rot=0,title='各班專業(yè)課平均成績柱狀圖',figsize=(16,9))plt.show()程序代碼讀取成績文件,參數(shù)為文件路徑。讀入的數(shù)據(jù)存儲在變量grade中,grade是一個數(shù)據(jù)框對象。繪制各班專業(yè)課平均成績柱狀圖。importpandasaspdfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']①plt.rcParams['axes.unicode_minus']=False②grade=pd.read_excel(r"D:\pydata\項目六\計算機專業(yè)成績.xlsx")③grade=grade.loc[:,['班級','C語言(70分)','數(shù)據(jù)結構(70分)','算法分析(60分)']]④res=grade.groupby('班級').agg('mean') res.plot(kind='bar',rot=0,title='各班專業(yè)課平均成績柱狀圖',figsize=(16,9))plt.show()程序代碼篩選出數(shù)據(jù)框中所有行的“班級”,“C語言(70分)”,“數(shù)據(jù)結構(70分)”和“算法分析(60分)”列,去掉與繪圖無關的列。繪制各班專業(yè)課平均成績柱狀圖。importpandasaspdfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']①plt.rcParams['axes.unicode_minus']=False②grade=pd.read_excel(r"D:\pydata\項目六\計算機專業(yè)成績.xlsx")③grade=grade.loc[:,['班級','C語言(70分)','數(shù)據(jù)結構(70分)','算法分析(60分)']]④res=grade.groupby('班級').agg('mean') ⑤res.plot(kind='bar',rot=0,title='各班專業(yè)課平均成績柱狀圖',figsize=(16,9))plt.show()程序代碼對數(shù)據(jù)框按“班級”進行分組,得到分組對象,再調用agg('mean')方法計算分組均值。繪制各班專業(yè)課平均成績柱狀圖。importpandasaspdfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']①plt.rcParams['axes.unicode_minus']=False②grade=pd.read_excel(r"D:\pydata\項目六\計算機專業(yè)成績.xlsx")③grade=grade.loc[:,['班級','C語言(70分)','數(shù)據(jù)結構(70分)','算法分析(60分)']]④res=grade.groupby('班級').agg('mean') ⑤res.plot(kind='bar',rot=0,title='各班專業(yè)課平均成績柱狀圖',figsize=(16,9))⑥plt.show()程序代碼調用res.plot()方法繪圖。參數(shù)kind=“bar”表示繪制柱狀圖;title設置圖像標題;figsize設置圖像大小,單位是英寸;rot設置軸刻度標簽(ticks)的旋轉角度,0為水平,90為垂直;以行索引班級名稱為橫軸刻度標簽(xticks),列索引為圖例(legend)。繪制各班專業(yè)課平均成績柱狀圖。importpandasaspdfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']①plt.rcParams['axes.unicode_minus']=False②grade=pd.read_excel(r"D:\pydata\項目六\計算機專業(yè)成績.xlsx")③grade=grade.loc[:,['班級','C語言(70分)','數(shù)據(jù)結構(70分)','算法分析(60分)']]④res=grade.groupby('班級').agg('mean') ⑤res.plot(kind='bar',rot=0,title='各班專業(yè)課平均成績柱狀圖',figsize=(16,9))⑥plt.show()⑦程序代碼調用plt.show()方法顯示繪制圖像,這是固定寫法。任務小結1.讀取數(shù)據(jù)2.處理數(shù)據(jù)3.調用plot()繪制圖像plot()方法詳解任務小結語法解釋Series/DataFrame.plot(*args,**kwargs)功能:使用數(shù)據(jù)序列或數(shù)據(jù)框繪圖常用參數(shù):x:labelorposition,defaultNone;設置繪圖橫軸數(shù)據(jù)y:label,positionorlistoflabel,positions,defaultNone;設置繪圖縱軸數(shù)據(jù)kind:str;設置圖像類型,'line'折線圖、'bar'垂直柱狀圖、'barh'水平柱狀圖、'hist'直方圖、'box'箱線圖、'kde'核密度估計圖、'density'密度圖、'area'面積圖、'pie'餅圖、'scatter'散點圖(僅支持數(shù)據(jù)框)、'hexbin'蜂窩圖(僅支持數(shù)據(jù)框)title:strorlist;設置子圖標題ax:matplotlibaxesobject,defaultNone;設置當前圖像所在的坐標系統(tǒng)figsize:atuple(width,height)ininches;設置當前圖像的尺寸grid:bool,defaultNone;是否顯示網(wǎng)格線legend:boolor{'reverse'};是否顯示圖例style:listordict;設置線條樣式(線型、顏色和標記)xlim:2-tuple/list;設置x軸刻度范圍ylim:2-tuple/list;設置y軸刻度范圍xticks:sequence;設置x軸刻度標簽yticks:sequence;設置y軸刻度標簽xlabel:label,optional;設置x軸標簽ylabel:label,optional;設置y軸標簽rot:int,defaultNone;設置刻度標簽旋轉角度subplots:bool,defaultFalse;是否繪制多圖layout:tuple,optional;設置多圖布局返回:matplotlib.axes.Axes(單圖)或其數(shù)組(多圖)一展身手如表6.1.8所示,請統(tǒng)計001班每個學生的平均成績,并繪制柱狀圖,如圖6.1.4所示。姓名班號科目成績小強001C80小強001Java90李四001Python78李四001C90小明002C80小明002Python78表6.1.8學生成績統(tǒng)計表圖6.1.5001班學生平均成績圖制作團隊制作:鄧利平重慶市九龍坡職業(yè)教育中心繪制股票收益率折線圖主講人:鄧利平重慶市九龍坡職業(yè)教育中心項目六 繪制圖表繪制單個圖表問題描述現(xiàn)有部分公司股票和上證指數(shù)數(shù)據(jù),如表6.1.9和6.1.10所示:表6.1.9股價數(shù)據(jù)表date代碼名稱開盤價最高價最低價收盤價交易量交易額收益率2001-08-27600519貴州茅臺-88.928917-88.213066-89.292313-88.7012484063180014103471360.0000002001-08-28600519貴州茅臺-88.823837-88.383820-88.907028-88.414467129647004634631360.036850..............................2021-07-15688981中芯國際56.02000056.15000255.04999955.169998261146561445777486-0.0148212021-07-16688981中芯國際55.77999956.18999954.00000054.029999590003553213342861-0.020663問題描述現(xiàn)有部分公司股票和上證指數(shù)數(shù)據(jù),如表6.1.9和6.1.10所示:表6.1.10上證指數(shù)表dateopenhighlowclosevolume1990-12-1996.05099.98095.79099.9801260001990-12-20104.300104.39099.980104.39019700..................2021-07-153519.0633565.9353514.2583564.590363259164002021-07-163559.5263565.9993537.7293539.30436601477900要求統(tǒng)計上證指數(shù)和各股票的收益率,并繪制折線圖。輸出結果圖6.1.6股票收益率折線圖題前思考繪制各班專業(yè)課平均成績柱狀圖。問題描述問題解答怎樣分組統(tǒng)計各股票的收益率?
怎樣計算上證指數(shù)收益率?
怎樣合并股票收益率和指數(shù)收益率?
繪制股票收益率折線圖。importpandasaspdfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falsestocks=pd.read_excel(r"D:\pydata\項目六\股價.xlsx",index_col=[0]) index=pd.read_excel(r"D:\pydata\項目六\指數(shù).xlsx",index_col=[0])程序代碼繪制股票收益率折線圖。importpandasaspdfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falsestocks=pd.read_excel(r"D:\pydata\項目六\股價.xlsx",index_col=[0]) ①index=pd.read_excel(r"D:\pydata\項目六\指數(shù).xlsx",index_col=[0])程序代碼讀取股票數(shù)據(jù)表到變量stocks中,并將第一列“date”作為行索引。繪制股票收益率折線圖。importpandasaspdfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falsestocks=pd.read_excel(r"D:\pydata\項目六\股價.xlsx",index_col=[0]) ①index=pd.read_excel(r"D:\pydata\項目六\指數(shù).xlsx",index_col=[0])②程序代碼讀取指數(shù)表到變量index中,同樣將第一列“date”作為行索引。繪制股票收益率折線圖。groups=stocks.groupby('名稱')names,dfs=[],[]forgingroups:names.append(g[0])dfs.append(g[1]['收益率'])dfs=pd.concat(dfs,axis=1)dfs.columns=names程序代碼繪制股票收益率折線圖。groups=stocks.groupby('名稱')③names,dfs=[],[]forgingroups:names.append(g[0])dfs.append(g[1]['收益率'])dfs=pd.concat(dfs,axis=1)dfs.columns=names程序代碼使用“名稱”列對數(shù)據(jù)框股票數(shù)據(jù)分組,得到groups分組對象。繪制股票收益率折線圖。groups=stocks.groupby('名稱')③names,dfs=[],[]forgingroups:names.append(g[0])dfs.append(g[1]['收益率'])④dfs=pd.concat(dfs,axis=1)dfs.columns=names程序代碼解析分組對象;g[0]為組名,類型‘str’;g[1]為分組數(shù)據(jù),類型為‘DataFrame’;g[1]['收益率']提取分組數(shù)據(jù)的“收益率”列,類型為‘Series’。通過for語句,將組名和收益率分別構成列表names和dfs。names的內容為['中芯國際','云南白藥','??低?,'美的集團','貴州茅臺'];dfs為‘Series’類型的列表,每一個‘Series’對象包含一只股票的全部收益率數(shù)據(jù)。繪制股票收益率折線圖。groups=stocks.groupby('名稱')③names,dfs=[],[]forgingroups:names.append(g[0])dfs.append(g[1]['收益率'])④dfs=pd.concat(dfs,axis=1)⑤dfs.columns=names程序代碼將dfs按“列”方向拼接為一個數(shù)據(jù)框對象。繪制股票收益率折線圖。groups=stocks.groupby('名稱')③names,dfs=[],[]forgingroups:names.append(g[0])dfs.append(g[1]['收益率'])④dfs=pd.concat(dfs,axis=1)⑤dfs.columns=names⑥程序代碼將數(shù)據(jù)框dfs的列索引設置為股票名稱繪制股票收益率折線圖。index['收益率']=index['close'].pct_change()dfs['上證指數(shù)']=index.收益率dfs.dropna(inplace=True)dfs.iloc[0]=0dfs+=1dfs=dfs.cumprod()dfs.plot(kind='line',figsize=(16,8),title='2020年7月至2021年7月股票收益率折線圖',style=['m.-','r-.','c--','y-','b:','k-1'])plt.show()程序代碼繪制股票收益率折線圖。index['收益率']=index['close'].pct_change()⑦dfs['上證指數(shù)']=index.收益率dfs.dropna(inplace=True)dfs.iloc[0]=0dfs+=1dfs=dfs.cumprod()dfs.plot(kind='line',figsize=(16,8),title='2020年7月至2021年7月股票收益率折線圖',style=['m.-','r-.','c--','y-','b:','k-1'])plt.show()程序代碼通過收盤值計算指數(shù)收益率,并保存為數(shù)據(jù)框index的“收益率”。繪制股票收益率折線圖。index['收益率']=index['close'].pct_change()⑦dfs['上證指數(shù)']=index.收益率⑧dfs.dropna(inplace=True)dfs.iloc[0]=0dfs+=1dfs=dfs.cumprod()dfs.plot(kind='line',figsize=(16,8),title='2020年7月至2021年7月股票收益率折線圖',style=['m.-','r-.','c--','y-','b:','k-1'])plt.show()程序代碼在數(shù)據(jù)框dfs中新建“上證指數(shù)”列,合并存儲index的“收益率”,按照dfs的行索引合并,也就是時間相同的行合并。繪制股票收益率折線圖。index['收益率']=index['close'].pct_change()⑦dfs['上證指數(shù)']=index.收益率⑧dfs.dropna(inplace=True)⑨dfs.iloc[0]=0dfs+=1dfs=dfs.cumprod()dfs.plot(kind='line',figsize=(16,8),title='2020年7月至2021年7月股票收益率折線圖',style=['m.-','r-.','c--','y-','b:','k-1'])plt.show()程序代碼去掉含有空值的行。繪制股票收益率折線圖。index['收益率']=index['close'].pct_change()⑦dfs['上證指數(shù)']=index.收益率⑧dfs.dropna(inplace=True)⑨dfs.iloc[0]=0dfs+=1dfs=dfs.cumprod()⑩dfs.plot(kind='line',figsize=(16,8),title='2020年7月至2021年7月股票收益率折線圖',style=['m.-','r-.','c--','y-','b:','k-1'])plt.show()程序代碼cumprod()方法計算累計收益率。cumprod()方法計算序列的累乘積,結果數(shù)據(jù)是一個與原序列長度相同的序列,結果序列的第一個值與原序列相同,結果序列的第二個值是原序列前兩個值的乘積,結果序列的第三個值是原序列前三個值的乘積,其他值以此類推。通過累乘積得到的是股票或指數(shù)的累計復合收益率。繪制股票收益率折線圖。index['收益率']=index['close'].pct_change()⑦dfs['上證指數(shù)']=index.收益率⑧dfs.dropna(inplace=True)⑨dfs.iloc[0]=0dfs+=1dfs=dfs.cumprod()⑩dfs.plot(kind='line',figsize=(16,8),title='2020年7月至2021年7月股票收益率折線圖',style=['m.-','r-.','c--','y-','b:','k-1'])?plt.show()程序代碼plot()方法繪圖,默認使用行索引(時間)生成橫坐標,橫坐標標簽為“date”;參數(shù)kind='line'表示繪制折線圖,使用數(shù)據(jù)框的每一列繪制一條折線;style設置線條樣式,線條樣式由顏色、線型和標記組成,可以不設置,也可以設置任意一種、兩種或三種。style是列表類型,符號意義見表6.1.5和6.1.6,第一個元素對應第一列數(shù)據(jù)曲線樣式,第二個元素對應第二列數(shù)據(jù)曲線樣式,依此類推。任務小結1.pct_change()、dropna(inplace=True)、dfs.cumprod()方法2.理解數(shù)據(jù)處理過程3.學會使用plot()繪制折線圖常用線型(LineStyles)和顏色(Colors)任務小結線型說明顏色說明顏色說明'-'實線(默認)'b'藍色'm'洋紅色'--雙劃線'g'綠色'y'黃色'-.'點劃線'r'紅色'k'黑色':'虛線'c'青色'w'白色常用標記符(Markers)任務小結標記符說明標記符說明標記符說明'.'實心圓'3'左Y形'+'加號','像素點'4'右Y形'x'叉形'o'空心圓'8'八邊形'X'加粗叉形'v'下三角形's'正方形'd'菱形'^'上三角形'p'五邊形'D'加粗菱形'<'左三角形'P'加粗十字'|'垂直線'>'右三角形'*'星形'_'水平線'1'正Y形'h'六邊形1
'2'倒Y形'H'六邊形2
一展身手要求使用表6.1.9中的數(shù)據(jù)(2_股價.xlsx),創(chuàng)建一個DataFrame對象。使用折線圖展示“云南白藥”的收盤價,其中云南白藥為x軸標簽,收盤價為y軸標簽,x軸刻度標簽是時間,如圖6.1.8。圖6.1.8收盤價折線圖制作團隊制作:鄧利平重慶市九龍坡職業(yè)教育中心在不同子圖繪制各班成績統(tǒng)計圖主講人:鄧利平重慶市九龍坡職業(yè)教育中心項目六 繪制圖表繪制多個圖表問題描述基于任務一活動1中的學生成績文件(1_計算機專業(yè)成績.xlsx),如表6.1.1所示。統(tǒng)計各班的C語言成績分布情況,并繪制直方圖(hist)。表6.1.1學生專業(yè)課成績表考號姓名性別班級C語言(70分)數(shù)據(jù)結構(70分)算法分析(60分)2022020419邱俊松男2019級計算機1班6753532022020437胡艷女2019級計算機1班6754522022020760孔航女2019級計算機2班6752542022020793黃莉女2019級計算機2班6455532022020772古瑞男2019級計算機2班616050.....................2022020088卿成男2019級計算機3班165132022020092歐金霞女2019級計算機3班106172022020799晏麗女2019級計算機2班79172022020440肖權利男2019級計算機1班85122022020430齊云瑞男2019級計算機1班000輸出結果圖6.2.1各班成績直方圖(hist)柱狀圖用寬度相同的條形的高度或長短來表示數(shù)據(jù)多少;直方圖由一系列高度不等的縱向條紋或線段表示數(shù)據(jù)分布的情況。題前思考在不同子圖繪制各班成績統(tǒng)計圖。問題描述問題解答怎樣將不同班級的學生成績分開?
怎樣篩選出C語言成績?
怎樣將篩選出的成績構造為DataFrame對象?
在不同子圖繪制各班成績統(tǒng)計圖。importpandasaspdfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']#支持中文plt.rcParams['axes.unicode_minus']=False#解決坐標軸負數(shù)的負號顯示問題grade=pd.read_excel(r"D:\pydata\項目六\計算機專業(yè)成績.xlsx")groups=grade.groupby('班級')程序代碼在不同子圖繪制各班成績統(tǒng)計圖。importpandasaspdfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']#支持中文plt.rcParams['axes.unicode_minus']=False#解決坐標軸負數(shù)的負號顯示問題grade=pd.read_excel(r"D:\pydata\項目六\計算機專業(yè)成績.xlsx")①groups=grade.groupby('班級')程序代碼從文件中讀取數(shù)據(jù),保存在變量grade中,該變量為數(shù)據(jù)框對象。在不同子圖繪制各班成績統(tǒng)計圖。importpandasaspdfrompylabimportpltplt.rcParams['font.sans-serif']=['SimHei']#支持中文plt.rcParams['axes.unicode_minus']=False#解決坐標軸負數(shù)的負號顯示問題grade=pd.read_excel(r"D:\pydata\項目六\計算機專業(yè)成績.xlsx")①groups=grade.groupby('班級')②程序代碼按照“班級”對grade分組,得到分組對象groups。在不同子圖繪制各班成績統(tǒng)計圖。names,dfs=[],[]forgingroups:names.append(g[0])dfs.append(g[1].loc[:,['C語言(70分)']])res=pd.concat(dfs,axis=1)res.columns=namesres.plot(kind='hist',figsize=(16,9),title='C語言成績分布圖',subplots=True,layout=(2,2))plt.show()程序代碼在不同子圖繪制各班成績統(tǒng)計圖。names,dfs=[],[]forgingroups:names.append(g[0])dfs.append(g[1].loc[:,['C語言(70分)']])③res=pd.concat(dfs,axis=1)res.columns=namesres.plot(kind='hist',figsize=(16,9),title='C語言成績分布圖',subplots=True,layout=(2,2))plt.show()程序代碼解析分組;g[0]為組名;g[1]是數(shù)據(jù)框對象,包含分組數(shù)據(jù);for語句執(zhí)行后,names內容為['2019級計算機1班','2019級計算機2班','2019級計算機3班','2019級計算機4班'],dfs為‘Series’類型的列表,每個‘Series’對象包含一個班的C語言成績。在不同子圖繪制各班成績統(tǒng)計圖。names,dfs=[],[]forgingroups:names.append(g[0])dfs.append(g[1].loc[:,['C語言(70分)']])③res=pd.concat(dfs,axis=1)④res.columns=namesres.plot(kind='hist',figsize=(16,9),title='C語言成績分布圖',subplots=True,layout=(2,2))plt.show()程序代碼將列表dfs拼接為數(shù)據(jù)框對象res,concat()沿“列”方向拼接,拼接方式為‘outer’,會出現(xiàn)很多空值,但是不影響成績分布統(tǒng)計結果。axis=1表示操作結果保持行索引不變,對列操作;如果axis=0則剛好相反。在不同子圖繪制各班成績統(tǒng)計圖。names,dfs=[],[]forgingroups:names.append(g[0])dfs.append(g[1].loc[:,['C語言(70分)']])③res=pd.concat(dfs,axis=1)④res.columns=names⑤res.plot(kind='hist',figsize=(16,9),title='C語言成績分布圖',subplots=True,layout=(2,2))plt.show()程序代碼設置res對象的列索引為names在不同子圖繪制各班成績統(tǒng)計圖。names,dfs=[],[]forgingroups:names.append(g[0])dfs.append(g[1].loc[:,['C語言(70分)']])③res=pd.concat(dfs,axis=1)④res.columns=names⑤res.plot(kind='hist',figsize=(16,9),title='C語言成績分布圖',subplots=True,layout=(2,2))⑥plt.show()程序代碼繪制一幅2行2列的圖像,使用res的每一列繪制一個直方圖。圖中每個條形占有的橫坐標范圍表示當前成績范圍,條形的高度表示當前成績范圍內的學生人數(shù)。任務小結1.讀入數(shù)據(jù)并分組2.將分組對象中C語言成績拼接成數(shù)據(jù)框對象3.設置plot()方法subplots=True,layout=(2,2)參數(shù)繪制多個子圖,一展身手使用本案例的數(shù)據(jù)(1_計算機專業(yè)成績.xlsx),分班統(tǒng)計各專業(yè)課最低分和最高分。要求繪制1行2列的統(tǒng)計圖,第一個子圖繪制垂直柱狀圖表示各班最低分,第二個子圖繪制水平柱狀圖表示各班最高分,如圖6.2.3。圖6.2.3繪制不同類型子圖制作團隊制作:鄧利平重慶市九龍坡職業(yè)教育中心按分數(shù)段繪制各班的人數(shù)占比主講人:鄧利平重慶市九龍坡職業(yè)教育中心項目六 繪制圖表繪制多個圖表問題描述使用學生成績數(shù)據(jù)(1_計算機專業(yè)成績.xlsx),針對C語言成績,統(tǒng)計各班學生在不及格學生、及格學生和優(yōu)秀學生中所占的比例,并繪制餅圖(pie)。表6.1.1學生專業(yè)課成績表考號姓名性別班級C語言(70分)數(shù)據(jù)結構(70分)算法分析(60分)2022020419邱俊松男2019級計算機1班6753532022020437胡艷女2019級計算機1班6754522022020760孔航女2019級計算機2班6752542022020793黃莉女2019級計算機2班6455532022020772古瑞男2019級計算機2班616050.....................2022020088卿成男2019級計算機3班165132022020092歐金霞女2019級計算機3班106172022020799晏麗女2019級計算機2班79172022020440肖權利男2019級計算機1班85122022020430齊云瑞男2019級計算機1班000輸出結果圖6.2.4成績段分班統(tǒng)計圖題前思考在不同子圖繪制各班成績統(tǒng)計圖。問題描述問題解答如何劃分不及格、及格、優(yōu)秀的分數(shù)段?
怎樣對成績執(zhí)行分段操作?
如何統(tǒng)計班級中某分數(shù)段學生的數(shù)量?
按分數(shù)段繪制各班的人數(shù)占比。importpandasaspdimportpylabaspltplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falsegrade=pd.read_excel(r"D:\pydata\項目六\計算機專業(yè)成績.xlsx")grade=grade.loc[:,['班級','C語言(70分)']]grade['C語言(70分)']=pd.cut(grade['C語言(70分)'],bins=[-1,42,56,71],labels=['不及格','及格','優(yōu)秀'])res=pd.crosstab(index=grade['班級'],columns=grade['C語言(70分)']) res.plot.pie(subplots=True,figsize=(16,9),layout=(1,3),labels=["1班","2班","3班","4班"],colors=["r","g","b","c"],autopct="%.0f%%",fontsize=12)plt.show()程序代碼按分數(shù)段繪制各班的人數(shù)占比。importpandasaspdimportpylabaspltplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falsegrade=pd.read_excel(r"D:\pydata\項目六\計算機專業(yè)成績.xlsx")grade=grade.loc[:,['班級','C語言(70分)']]①grade['C語言(70分)']=pd.cut(grade['C語言(70分)'],bins=[-1,42,56,71],labels=['不及格','及格','優(yōu)秀'])res=pd.crosstab(index=grade['班級'],columns=grade['C語言(70分)']) res.plot.pie(subplots=True,figsize=(16,9),layout=(1,3),labels=["1班","2班","3班","4班"],colors=["r","g","b","c"],autopct="%.0f%%",fontsize=12)plt.show()程序代碼從數(shù)據(jù)表中取出“班級”和“C語言(70分)”兩列數(shù)據(jù)按分數(shù)段繪制各班的人數(shù)占比。importpandasaspdimportpylabaspltplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falsegrade=pd.read_excel(r"D:\pydata\項目六\計算機專業(yè)成績.xlsx")grade=grade.loc[:,['班級','C語言(70分)']]①grade['C語言(70分)']=pd.cut(grade['C語言(70分)'],bins=[-1,42,56,71],labels=['不及格','及格','優(yōu)秀'])②res=pd.crosstab(index=grade['班級'],columns=grade['C語言(70分)']) res.plot.pie(subplots=True,figsize=(16,9),layout=(1,3),labels=["1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Thaigranatumin-C-生命科學試劑-MCE
- Sp-GDPαS-trisodium-生命科學試劑-MCE
- 交通運輸與物流:城市配送車輛電動化轉型策略分析報告
- RIPK1-IN-30-生命科學試劑-MCE
- 保定園博園介紹
- 人工智能+廣播影視:2025年行業(yè)媒體融合趨勢研究報告
- 中班語言健康寶寶培養(yǎng)策略
- 音標字體設計作業(yè)
- 初中交通安全課件
- 教育數(shù)據(jù)挖掘與智能化學習路徑探索
- 鍋爐風煙系統(tǒng)
- 經導管主動脈瓣置換術中國專家共識(2020-更新版)
- (完整版)西門子PLC教程從入門到精通
- 運維或技術支持崗位招聘筆試題與參考答案(某大型央企)2024年
- 004.多參數(shù)監(jiān)護儀臨床警報管理實踐指南2020版
- 汕頭市防汛防旱防風防凍應急預案
- 2023年高考遼寧卷化學真題(解析版)
- (修訂版)糧油質量檢驗員理論考試復習題庫-上(單選題)
- 2024版商戶入駐合同
- 和公司直播合作協(xié)議書范本
- 兒科護理學高職全套教學課件
評論
0/150
提交評論