文件
需要學生文件的可以私信我
過程
利用numpy的loadtxt文件讀取學號,性別,和身高。
import numpy as np
import matplotlib.pyplot as pltfilename='/Users/oommnn/Desktop/python學習/數據分析/網課資料/第04天/student-data.txt'user_info=np.dtype([('subject','U10'),('sex','U1'),('height','f')])data=np.loadtxt(filename,dtype=user_info,skiprows=9,usecols=(0,1,3),encoding='utf-8')#排序默認升序
#argsort()函數返回數組元素的索引值,這些元素按升序排序。
index_order=data['height'].argsort()
#倒序
index_order=index_order[::-1]
data=data[index_order]
#獲得全部學生的體重數據
subjects=data['subject']
heights=data['height']
#分別獲得男生和女生的體重數據
isboy=data['sex']=='M'
isgirl=data['sex']=='F'
subjects_boy=data['subject'][isboy]
heights_boy=data['height'][isboy]
subjects_girl=data['subject'][isgirl]
heights_girl=data['height'][isgirl]#figsize設置大小
#subplot_mosaic:將圖像分為四個區域,用left和right進行組合,可以將四部分合并也可以分分散
fig, axs = plt.subplot_mosaic([['left_top', 'left_top'],['left', 'right']],figsize=(12,5),layout='constrained',facecolor='lightskyblue')axs['left_top'].scatter(subjects,heights)
axs['left_top'].set_title('Stduent Height',fontsize=15)
axs['left_top'].set_xlabel('student subject',fontsize=12)
axs['left_top'].set_ylabel('height/m')axs['left'].scatter(subjects_boy,heights_boy)
axs['left'].set_title('Boy Height',fontsize=15)
axs['left'].set_xlabel('boy student subject',fontsize=12)
axs['left'].set_ylabel('height/m')axs['right'].scatter(subjects_girl,heights_girl)
axs['right'].set_title('Girl Height',fontsize=15)
axs['right'].set_xlabel('girl student subject',fontsize=12)
axs['right'].set_ylabel('height/m')plt.show()