Xây dựng ứng dụng phân cụm K-Means bằng Python

Một phần của tài liệu (LUẬN văn THẠC sĩ) phân tích dữ liệu sinh viên tốt nghiệp bằng phương pháp trực quan (Trang 50 - 81)

- Xây dựng dữ liệu bằng file Excel để thực hiện thuật toán K -Means theo Bảng dữ liệu 3.12 gồm có Y1 điểm SV năm 1, Y2 điểm SV năm 2, Y3 điểm SV năm 3, Ycn điểm SV chuyên ngành, Ytn điểm SV tốt nghiệp gồm 124 SV. Bảng 3.11: Bảng dữ liệu SV phân cụm Y1 Y2 Y3 Ycn Ytn 7.2 6.3 7.0 7.8 7.4 6.9 6.1 7.8 7.5 7.1 5.9 5.8 8.0 5.8 6.7 7.2 7.4 8.7 8.2 7.8 6.8 7.0 7.9 7.3 7.1 7.5 6.9 7.7 6.2 6.5 6.8 6.7 7.0 7.5 7.2 6.2 5.8 7.7 6.7 6.4 6.9 7.2 7.9 7.1 7.0 7.2 6.3 7.0 7.7 7.4 7.6 7.0 7.0 7.6 7.6 6.2 5.8 7.7 6.1 6.4 …… …… …… …… …… 6.9 6.4 8.6 7.9 7.4 6.5 6.3 6.9 7.2 7.2 7.3 6.7 6.8 7.5 7.6 7.1 6.7 7.9 7.4 7.2 6.8 7.0 7.9 7.1 7.1

Hình 3.27: Nhận file dữ liệu Excel

- Phân loại điểm SV với điểm Y1 năm 1, Y2 điểm năm 2, Y3 điểm năm 3 với K cụm, K=3 như Hình 3.28.

Hình 3.28: Phân cụm với K =3

- Phân loại điểm SV với điểm Y1 năm 1, Y2 điểm năm 2, Y3 điểm năm 3 với K cụm, K=5 như Hình 3.29.

Hình 3.29: Phâm cụm với K = 5

- Phân loại điểm SV với điểm Y1 năm 1, Y2 điểm năm 2, Y3 điểm năm 3 với K cụm, K=10 như Hình 3.30.

Hình 3.30: Phân cụm K =10

- Kết quả phân cụm theo K =3, K= 5, K =10 theo điểm của Sinh viên gồm 3 biến điểm năm 1 là Y1, điểm năm 2 là Y2, điểm năm 3 là Y3 như Hình

Hình 3.31: Kết quả phân cụm theo K

-Xây dựng chương trình phân cụm dựa trên điểm thực tập chuyên ngành và điểm tốt nghiệp sinh viên với biến Ycn điểm chuyên ngành, Ytn điểm tốt nghiệp.

Ta thử phân cụm với K =3, ta có kết quả như Hình 3.32.

-Xây dựng chương trình phân cụm dựa trên điểm thực tập chuyên ngành và điểm tốt nghiệp sinh viên với biến Ycn điểm chuyên ngành, Ytn điểm tốt nghiệp.

- Phân cụm điểm chuyên ngành Ycn và điểm tốt nghiệp Ytnvới K = 10, như Hình 3.34.

CHƯƠNG 4: XÂY DỰNG TẬP CÂU HỎI PHÂN TÍCH 4.1Xây dựng tập dữ liệu câu hỏi phân tích và trả lời

- Nội dung phân tích và câu hỏi là vấn đề quan trọng trong phương pháp trực quan với trực quan 2 chiều.

- Bảng phân tích câu hỏi bao gồm giả thiết và kết luận như Bảng 4.1

Bảng 4.1: Bảng phân tích câu hỏi

Câu hỏi Giả thiết Kết luận

Điểm SV năm 1, năm 2, năm 3, chuyên ngành, điểm tốt nghiệp ảnh hướng đến việc làm như thế nào?

Điểm SV học tập trong trong quá trình học tại trường cao đẳng.

Kết quả học tập của SV ảnh hưởng đến việc làm?

- Quan sát biểu đồ trực quan điểm năm 1 là Y1, điểm năm 2 là Y2, điểm năm 3 là Y3, điểm chuyên ngành Ycn, điểm tốt nghiệp Ytn của Sinh viênnhư Hình 4.1.

- Dựa vào biểu đồ điểm chuyên ngành và điểm tốt nghiệp SV càng cao thì tỷ lệ việc làm của SV cao hơn như Hình 4.2.

Hình 4.2: Điểm chuyên ngành và tốt nghiệp SV

- Quan sát biểu đồ 3 chiều biểu diễn điểm SV năm 1, 2, 3 có điểm cao thì điểm chuyên ngành và điểm tốt nghiệp cao thể hiện Hình 4.3.

Hình 4.3: Biểu đồ 3D điểm SV Y1, Y2, Y3, Ycn, Ytn 4.2Xây dựng tập câu hỏi và trả lời theo K – Means

- Phân loại điểm SV năm 1, năm 2, năm 3 với K = 10, ta thấy cụm điểm cao ít, nhưng có điểm chuyên ngành và điểm tốt nghiệp cao như Hình 4.4.

- Dựa vào biểu đồ phân cụm điểm chuyên ngành Ycn và điểm tốt nghiệp Ytn của SV có điểm cao thì tỷ lệ việc làm cao theo Hình 4.5 với cụm ngẫu nhiên.

CHƯƠNG 5: KẾT LUẬN

- Tác giả đã tiếp cận dữ liệu điểm của SV năm 1, 2, 3, điểm chuyên ngành, điểm tốt nghiệp với điểm tốt nghiệp của 3 khoa. Khảo sát thêm SV có việc làm và không có việc làm.

- Tiếp cận theo phương pháp phân tích và biểu diễn bằng phương pháp biểu đồ không gian 2 chiều và 3 chiều, phương pháp phân cụm dữ liệu với thuật toán K -Means.

- Xây dựng các biểu đồ trực quan và mô tả các biến rõ ràng, ứng dụng các phương pháp trực quan trên biểu đồ không gian và thời gian với bểu đồ cột, đường và phương pháp phân cụm điểm ngẫu nhiên.

- Từ các biểu đồ được phân tích dữ liệu sinh viên tốt nghiệp rút ra được các thông tin hữu ích hỗ trợ đưa ra quyết định các chính sách nâng cao chất lượng đào tạo của Trường.

TÀI LIỆU THAM KHẢO

[1] Phuoc Vinh Tran, Truong Xuan Le, “Approaching human vision

perceptionto designing visual graph in data visualization”, March 2020.

[2] Pham Dinh Khanh (2019), Visualization trong python, https://phamdinhkhanh.github.io/2019/09/16/VisualizationPython.html, truy cập ngày: 20/01/2020

[3] Nguyễn Văn Hiếu (2018), Thuật toán K-Means và ví dụ, https://nguyenvanhieu.vn/thuat-toan-phan-cum-k-means/, truy cập ngày 05/02/2020

[4]Anonymous (2017), K-nearest neighbors,

https://machinelearningcoban.com/2017/01/08/knn/, access Mar 5,2020

[5] Hong Thi Nguyen, Lieu Thi Le, Cam Ngoc Thi Huynh, Thuan My Thi Pham, Anh Van Thi Tran, Dang Van Pham, Phuoc Vinh Tran, “Integrating Retinal Variables into Graph Visualizing Multivariate Data to Increase Visual

Features”, November 2019.

[6] Hong Thi Nguyen, Thuan My Thi Pham, Tuyet Anh Thi Nguyen, Anh Van Thi Tran, Phuoc Vinh Tran, and Dang Van Pham, “Two – Stage Approach to

Classifying Multidimensional Cubes for Visualization of Multivariate Data,

November 2018.

[7] Phuoc Vinh Tran, Hong Thi Nguyen, “Multidimensional Cube for

Representing Flight Data in Visualization – based System for Tracking Flyer”,

October 2016.

[8] Arif Perdana, Alastair Robb & Fiona Rohde, “Does Visualization Matter? The Role of Interactive Data Visualization to Make Sense of Information”,

Australasian Journal of Information Systems 2018, Voll 22, Research Article.

[9] Nguyễn Văn Lễ, Mạnh Thiên Lý, Nguyễn Thị Định, Nguyễn Thị Thanh Thủy (2018), Cải tiến thuật toán K -means và ứng dụng hỗ trợ sinh viên chọn

chuyên ngành theo học chế tín chỉ, Tạp chí Khoa học công nghệ và Thực phẩm, 15(1), tr 152-160.

[10]Anonymous (2018), Matplotlib ,https://matplotlib.org/, access: Jun 18,2020

[12] Nguyen Van Hoang (2019), Giới thiệu về Numpy, Giới thiệu về Numpy (một thư viện chủ yếu phục vụ cho khoa học máy tính của Python) (viblo.asia), truy cập ngày: 28/09/2020

[13] Vô danh (2020), Thư viện scikit learn trong python là gì?, Thư Viện Scikit- learn Trong Python Là Gì? (codelearn.io), truy cập ngày: 12/10/2020

[14] Phuoc Tran Vinh, Hong Nguyen Thi, “Visualization Cube for Tracking

Moving Object”, May 2011.

[15] Nguyễn Quyết, Lê Thị Kim Thoa, Ứng dụng mô hình hồi quy logit thứ bậc phân tích kết quả môn học tiếng Anh của sinh viên trường đại học ngaoì công lập của thành phố Hồ Chí Minh”, Tạp chí Giáo dục, 44 (kì 2 – 12/2018), tr 48-54

[16] Hong Nguyen Thi, Anh Van Thi Tran, Tuyet Anh Nguyen Thi, Luc Tan Vo, Phuoc Tran Vinh, “Multivariate Cube for Representing Multivariable

Data in Visual Analytics”, Nov 2016

[17] Vô danh, Trực quan hóa dữ liệu bằng Matplotib & Python cho khát vọng

khoa học dữ liệu, https://ichi.pro/vi/truc-quan-hoa-du-lieu-bang-matplotib-

python-cho-khat-vong-khoa-hoc-du-lieu-235515044314489, truy cập ngày: 26/01/2021

[18] Vô danh (2017), K-means Clustering,

https://machinelearningcoban.com/2017/01/01/kmeans/, truy cập ngày: 05/02/2021

3 from pandas import ExcelFile

4 import matplotlib.pyplot as plt

5 from mpl_toolkits.mplot3d import Axes3D

6 import folium 7 8 9 df = pd.read_excel('D:\CAOHOC\Yen\CODE\DULIEUDIEMSV.xls') 10 df1 = pd.read_excel('D:\CAOHOC\Yen\CODE\DULIEUDIEMSV1.xls') 11 df2 = pd.read_excel('D:\CAOHOC\Yen\CODE\DULIEUDIEMSV2.xls') 12 df3 = pd.read_excel('D:\CAOHOC\Yen\CODE\DULIEUDIEMSV3.xls') 13 df4 = pd.read_excel('D:\CAOHOC\Yen\CODE\DIEMSV0J.xls') 14 df5 = pd.read_excel('D:\CAOHOC\Yen\CODE\DIEMSV1J.xls') 15 print(df) 16 S0 = df['STT'] 17 d01 = df['Y1'] 18 d02 = df['Y2'] 19 d03 = df['Y3'] 20 d04 = df['Ycn'] 21 d05 = df['Ytn'] 22 d06=0 23 24 25 S1 = df1['STT'] 26 a1 = df1['Y1'] 27 a2 = df1['Y2'] 28 a3 = df1['Y3'] 29 a4 = df1['Ycn'] 30 a5 = df1['Ytn'] 31 32 S2 = df2['STT'] 33 b1 = df2['Y1'] 34 b2 = df2['Y2'] 35 b3 = df2['Y3'] 36 b4 = df2['Ycn'] 37 b5 = df2['Ytn'] 38 39 40 S3 = df3['STT'] 41 c1 = df3['Y1'] 42 c2 = df3['Y2'] 43 c3 = df3['Y3'] 44 c4 = df3['Ycn'] 45 c5 = df3['Ytn'] 46 47 s4 = df4['STT'] 48 e4= df4['Ycn'] 49 e5 = df4['Ytn'] 50 51 s5 = df5['STT'] 52 f4 = df5['Ycn'] 53 f5 = df5['Ytn'] 54 print(df4) 55 print(df5)

56 # Bieu do cot tong hop

57 #X = np.arange(4)

58 fig = plt.figure()

59 ax0 = fig.add_axes([0,0,1,1])

60 ax0.bar(S0 + 0.00, d01, color = 'g', width = 0.25)

61 ax0.bar(S0 + 0.25, d02, color = 'r', width = 0.25)

62 ax0.bar(S0 + 0.50, d03, color = 'b', width = 0.25)

63 ax0.bar(S0 + 0.75, d04, color = 'y', width = 0.25)

64 ax0.bar(S0 + 1, d05, color = 'violet', width = 0.25)

75 #plt.bar(S0 + 1, d05, color = 'violet', width = 0.25)

76 #plt.bar(S0 + 1.25, d06, color = 'w', width = 0.25)

77 #plt.ylabel('Điểm của sinh viên từ 0 đến 10')

78 #plt.xlabel('Số lượng sinh viên của khóa 2016')

79 #plt.legend()

80 #plt.show()

81

82 # Bieu do khoa co khí dong luc

83 fig = plt.figure()

84 ax1 = fig.add_axes([0,0,1,1])

85 ax1.bar(S1 + 0.00, a1, color = 'g', width = 0.25)

86 ax1.bar(S1 + 0.25, a2, color = 'r', width = 0.25)

87 ax1.bar(S1 + 0.5, a3, color = 'b', width = 0.25)

88 ax1.bar(S1 + 0.75, a4, color = 'y', width = 0.25)

89 ax1.bar(S1 + 1, a5, color = 'violet', width = 0.25)

90 plt.ylabel('DIEM')

91 plt.xlabel('SINHVIEN')

92 plt.show()

93 ### Khoa co khi ch tao

94 fig = plt.figure()

95 ax2 = fig.add_axes([0,0,1,1])

96 ax2.bar(S2 + 0.00, b1, color = 'g', width = 0.25)

97 ax2.bar(S2 + 0.25, b2, color = 'r', width = 0.25)

98 ax2.bar(S2 + 0.50, b3, color = 'b', width = 0.25)

99 ax2.bar(S2 + 0.75, b4, color = 'y', width = 0.25)

100 ax2.bar(S2 + 1, b5, color = 'violet', width = 0.25)

101 plt.ylabel('DIEM') 102 plt.xlabel('SINHVIEN') 103 plt.legend() 104 plt.show() 105 106 ### Khoa dien 107 fig = plt.figure()

108 ax3 = fig.add_axes([0,0,1,1])

109 ax3.bar(S3 + 0.00, c1, color = 'g', width = 0.25)

110 ax3.bar(S3 + 0.25, c2, color = 'r', width = 0.25)

111 ax3.bar(S3 + 0.5, c3, color = 'b', width = 0.25)

112 ax3.bar(S3 + 0.75, c4, color = 'y', width = 0.25)

113 ax3.bar(S3 + 1, c5, color = 'violet', width = 0.25)

114 plt.ylabel('DIEM')

115 plt.xlabel('SINHVIEN')

116 plt.show()

117

118 # Vẽ đồ thị theo dạng điểm mutiline

119 # Dạng 01 co khi dong luc

120 plt.plot(S1,a1,color = 'g', ls = '--',label='Y1 điểm năm 1')

121 plt.plot(S1,a2,color = 'r', ls = '--',label='Y2 điểm năm 2')

122 plt.plot(S1,a3,color = 'b', ls = '--',label='Y3 điểm năm 3')

123 plt.plot(S1,a4,color = 'y', ls = '--',label='Ycn Điểm chuyên ngành')

124 plt.plot(S1,a5,color = 'violet', ls = '--',label='Ytn Điểm tốt nghiệp Sinh viên')

125 plt.ylabel('Điểm của sinh viên từ 0 đến 10')

126 plt.xlabel('Số lượng sinh viên Khoa Cơ Khí Động Lực năm 2016, tốt nghiệp 2019')

127 plt.legend()

128 plt.show()

129 # Dạng 02 co khi che tao

130 plt.plot(S2,b1,color = 'g', ls = '--',label='Y1 điểm năm 1')

131 plt.plot(S2,b2,color = 'r', ls = '--',label='Y2 điểm năm 2')

132 plt.plot(S2,b3,color = 'b', ls = '--',label='Y3 điểm năm 3')

133 plt.plot(S2,b4,color = 'y', ls = '--',label='Ycn Điểm chuyên ngành')

134 plt.plot(S2,b5,color = 'violet', ls = '--',label='Ytn Điểm tốt nghiệp Sinh viên')

135 plt.ylabel('Điểm của sinh viên từ 0 đến 10')

136 plt.xlabel('Số lượng sinh viên của Khoa Cơ Khí Chế Tạo năm 2016, tốt nghiệp 2019')

137 plt.legend()

138 plt.show()

147 plt.legend()

148 plt.show()

149 # Dang 0 TH Toan Sinh vien

150 plt.plot(S0,d01,color = 'g', ls = '--',label='Y1 điểm năm 1')

151 plt.plot(S0,d02,color = 'r', ls = '--',label='Y2 điểm năm 2')

152 plt.plot(S0,d03,color = 'b', ls = '--',label='Y3 điểm năm 3')

153 plt.plot(S0,d04,color = 'y', ls = '--',label='Ycn Điểm chuyên ngành')

154 plt.plot(S0,d05,color = 'violet', ls = '--',label='Ytn Điểm tốt nghiệp Sinh viên')

155 plt.ylabel('Điểm của sinh viên từ 0 đến 10')

156 plt.xlabel('Số lượng sinh viên của trường năm 2016, tốt nghiệp 2019')

157 plt.legend()

158 plt.show()

159

160 # Điểm Khoa cơ khí động lực

161 fig, axes = plt.subplots(1, 5, sharey=False, sharex=False)

162 fig.set_figwidth(16)

163 fig.set_figheight(8)

164 axes[0].plot(a1.index, a1, label='Điểm năm 1')

165 axes[0].set_xlabel(" Sinh viên Cơ khí động lực khóa 2016 (a)")

166 axes[0].set_ylabel("Điểm 0 đến 10 ")

167 axes[0].legend(loc='best')

168

169 axes[1].plot(a2.index, a2, label='Điểm năm 2')

170 axes[1].set_xlabel(" Sinh viên Cơ khí động lực khóa 2016 (b)")

171 axes[1].set_ylabel("Điểm 0 đến 10 ")

172 axes[1].legend(loc='best')

173

174 axes[2].plot(a3.index, a3, label='Điểm năm 3')

175 axes[2].set_xlabel(" Sinh viên Cơ khí động lực khóa 2016 (c)")

176 axes[2].set_ylabel("Điểm 0 đến 10 ")

177 axes[2].legend(loc='best')

178

179 axes[3].plot(a4.index, a4, label='Điểm thực tập')

180 axes[3].set_xlabel(" Sinh viên Cơ khí động lực khóa 2016 (d)")

181 axes[3].set_ylabel("Điểm 0 đến 10 ")

182 axes[3].legend(loc='best')

183

184 axes[4].plot(a5.index, a5, label='Điểm tốt nghiệp')

185 axes[4].set_xlabel(" Sinh viên Cơ khí động lực khóa 2016 (e)")

186 axes[4].set_ylabel("Điểm 0 đến 10 ")

187 axes[4].legend(loc='best')

188

189 plt.tight_layout()

190 plt.show()

191

192 # Điểm khoa cơ khí chế tạo

193 fig, axes = plt.subplots(1, 5, sharey=False, sharex=False)

194 fig.set_figwidth(16)

195 fig.set_figheight(8)

196 axes[0].plot(b1.index, b1, label='Điểm năm 1')

197 axes[0].set_xlabel("Sinh viên Khoa Cơ Khí Chế Tạo khóa 2016(a)")

198 axes[0].set_ylabel("Điểm 0 đến 10 ")

199 axes[0].legend(loc='best')

200

201 axes[1].plot(b2.index, b2, label='Điểm năm 2')

202 axes[1].set_xlabel("Sinh viên Khoa Cơ Khí Chế Tạo khóa 2016(b)")

203 axes[1].set_ylabel("Điểm 0 đến 10 ")

204 axes[1].legend(loc='best')

205

206 axes[2].plot(b3.index, b3, label='Điểm năm 3')

207 axes[2].set_xlabel("Sinh viên Khoa Cơ Khí Chế Tạo khóa 2016(c)")

208 axes[2].set_ylabel("Điểm 0 đến 10 ")

219 axes[4].legend(loc='best')

220

221 plt.tight_layout()

222 plt.show()

223

224 # Điểm Sinh viên Khoa Điện

225 fig, axes = plt.subplots(1, 5, sharey=False, sharex=False)

226 fig.set_figwidth(16)

227 fig.set_figheight(8)

228 axes[0].plot(c1.index, c1, label='Điểm năm 1')

229 axes[0].set_xlabel(" Sinh viên Khoa Điện khóa 2016 (a)")

230 axes[0].set_ylabel("Điểm 0 đến 10 ")

231 axes[0].legend(loc='best')

232

233 axes[1].plot(c2.index, c2, label='Điểm năm 2')

234 axes[1].set_xlabel(" Sinh viên Khoa Điện khóa 2016 (b)")

235 axes[1].set_ylabel("Điểm 0 đến 10 ")

236 axes[1].legend(loc='best')

237

238 axes[2].plot(c3.index, c3, label='Điểm năm 3')

239 axes[2].set_xlabel(" Sinh viên Khoa Điện khóa 2016 (c)")

240 axes[2].set_ylabel("Điểm 0 đến 10 ")

241 axes[2].legend(loc='best')

242

243 axes[3].plot(c4.index, c4, label='Điểm thực tập')

244 axes[3].set_xlabel(" Sinh viên Khoa Điện khóa 2016 (d)")

245 axes[3].set_ylabel("Điểm 0 đến 10 ")

246 axes[3].legend(loc='best')

247

248 axes[4].plot(c5.index, c5, label='Điểm tốt nghiệp')

249 axes[4].set_xlabel(" Sinh viên Khoa Điện khóa 2016 (e)")

250 axes[4].set_ylabel("Điểm 0 đến 10 ")

251 axes[4].legend(loc='best')

252

253 plt.tight_layout()

254 plt.show()

255

256 # điểm 3 năm của sinh viên

257 fig, axes = plt.subplots(1, 5, sharey=False, sharex=False)

258 fig.set_figwidth(16)

259 fig.set_figheight(8)

260 axes[0].plot(d01.index, d01, label='Điểm năm 1')

261 axes[0].set_xlabel(" Sinh viên khóa 2016 (a)")

262 axes[0].set_ylabel("Điểm 0 đến 10 ")

263 axes[0].legend(loc='best')

264

265 axes[1].plot(d02.index, d02, label='Điểm năm 2')

266 axes[1].set_xlabel(" Sinh viên khóa 2016 (b)")

267 axes[1].set_ylabel("Điểm 0 đến 10 ")

268 axes[1].legend(loc='best')

269

270 axes[2].plot(d03.index, d03, label='Điểm năm 3')

271 axes[2].set_xlabel(" Sinh viên khóa 2016 (c)")

272 axes[2].set_ylabel("Điểm 0 đến 10 ")

273 axes[2].legend(loc='best')

274

275 axes[3].plot(d03.index, d04, label='Điểm thực tập')

276 axes[3].set_xlabel(" Sinh viên khóa 2016 (d)")

277 axes[3].set_ylabel("Điểm 0 đến 10 ")

278 axes[3].legend(loc='best')

279

280 axes[4].plot(d05.index, d05, label='Điểm tốt nghiệp')

281 axes[4].set_xlabel(" Sinh viên khóa 2016 (e)")

282 axes[4].set_ylabel("Điểm 0 đến 10 ")

291 fig.set_figwidth(16)

292 fig.set_figheight(8)

293 axes[0].plot(a1.index, a1,color = 'r', ls = '--', marker = 's', lw = 2,label='Điểm năm 1')

294 axes[0].set_xlabel("Sinh viên Khoa Cơ Khí Động lực khóa 2016(a)")

295 axes[0].set_ylabel("Điểm 0 đến 10 ")

296 axes[0].legend(loc='best')

297

298 axes[1].plot(a2.index, a2, color = 'y', ls = '--', marker = 's', lw = 2,label='Điểm năm 2')

299 axes[1].set_xlabel("Sinh viên Cơ khí động lực khóa 2016(b)")

300 axes[1].set_ylabel("Điểm 0 đến 10 ")

301 axes[1].legend(loc='best')

302

303 axes[2].plot(a3.index, a3, color = 'b', ls = '--', marker = 's', lw = 2,label='Điểm năm 3')

304 axes[2].set_xlabel("Sinh viên Cơ khí động lực khóa 2016(c)")

305 axes[2].set_ylabel("Điểm 0 đến 10 ")

306 axes[2].legend(loc='best')

307

308 axes[3].plot(a4.index, a4, color = 'g', ls = '--', marker = 's', lw = 2,label='Điểm thực tập chuyên ngành')

309 axes[3].set_xlabel(" Sinh viên Cơ khí động lực khóa 2016 (d)")

310 axes[3].set_ylabel("Điểm 0 đến 10 ")

311 axes[3].legend(loc='best')

312

313 axes[4].plot(a5.index, a5, color = 'violet', ls = '--', marker = 's', lw =

2,label='Điểm năm tốt nghiệp')

314 axes[4].set_xlabel("Sinh viên Cơ khí động lực khóa 2016(e)")

315 axes[4].set_ylabel("Điểm 0 đến 10 ")

316 axes[4].legend(loc='best')

317

318 plt.tight_layout()

319 plt.show()

320 # điểm 3 năm của sinh viên plot Khoa Cơ khí chế tạo

321 fig, axes = plt.subplots(1, 5, sharey=False, sharex=False)

322 fig.set_figwidth(16)

323 fig.set_figheight(8)

324 axes[0].plot(b1.index, b1,color = 'r', ls = '--', marker = 's', lw = 2,label='Điểm năm 1')

325 axes[0].set_xlabel("Sinh viên Khoa Cơ Khí Chế Tạo khóa 2016(a)")

326 axes[0].set_ylabel("Điểm 0 đến 10 ")

327 axes[0].legend(loc='best')

328

329 axes[1].plot(b2.index, b2, color = 'y', ls = '--', marker = 's', lw = 2,label='Điểm năm 2')

330 axes[1].set_xlabel("Sinh viên Khoa Cơ Khí Chế Tạo khóa 2016(b)")

331 axes[1].set_ylabel("Điểm 0 đến 10 ")

332 axes[1].legend(loc='best')

333

334 axes[2].plot(b3.index, b3, color = 'b', ls = '--', marker = 's', lw = 2,label='Điểm năm 3')

335 axes[2].set_xlabel("Sinh viên Khoa Cơ Khí Chế Tạo khóa 2016(c)")

336 axes[2].set_ylabel("Điểm 0 đến 10 ")

337 axes[2].legend(loc='best')

338

339 axes[3].plot(b4.index, b4, color = 'g', ls = '--', marker = 's', lw = 2,label='Điểm thực tập chuyên ngành')

340 axes[3].set_xlabel("Sinh viên Khoa Cơ Khí Chế Tạo khóa 2016(d)")

341 axes[3].set_ylabel("Điểm 0 đến 10 ")

342 axes[3].legend(loc='best')

343

353 fig, axes = plt.subplots(1, 5, sharey=False, sharex=False)

354 fig.set_figwidth(16)

355 fig.set_figheight(8)

356 axes[0].plot(c1.index, c1,color = 'r', ls = '--', marker = 's', lw = 2,label='Điểm năm 1')

357 axes[0].set_xlabel(" Sinh viên Khoa Điện khóa 2016 (a)")

358 axes[0].set_ylabel("Điểm 0 đến 10 ")

359 axes[0].legend(loc='best')

360

361 axes[1].plot(c2.index, c2, color = 'y', ls = '--', marker = 's', lw = 2,label='Điểm năm 2')

362 axes[1].set_xlabel(" Sinh viên Khoa Điện khóa 2016 (b)")

363 axes[1].set_ylabel("Điểm 0 đến 10 ")

364 axes[1].legend(loc='best')

365

366 axes[2].plot(c3.index, c3, color = 'b', ls = '--', marker = 's', lw = 2,label='Điểm năm 3')

367 axes[2].set_xlabel(" Sinh viên Khoa Điện khóa 2016 (c)")

368 axes[2].set_ylabel("Điểm 0 đến 10 ")

369 axes[2].legend(loc='best')

370

371 axes[3].plot(c4.index, c4, color = 'g', ls = '--', marker = 's', lw = 2,label='Điểm thực tập chuyên ngành')

372 axes[3].set_xlabel(" Sinh viên Khoa Điện khóa 2016 (d)")

373 axes[3].set_ylabel("Điểm 0 đến 10 ")

374 axes[3].legend(loc='best')

375

376 axes[4].plot(c5.index, c5, color = 'violet', ls = '--', marker = 's', lw =

2,label='Điểm năm tốt nghiệp')

377 axes[4].set_xlabel(" Sinh viên Khoa Điện khóa 2016 (e)")

378 axes[4].set_ylabel("Điểm 0 đến 10 ")

379 axes[4].legend(loc='best')

380

381 plt.tight_layout()

382 plt.show()

383

384 # điểm 3 năm của sinh viên plot toàn khóa

385 fig, axes = plt.subplots(1, 5, sharey=False, sharex=False)

386 fig.set_figwidth(16)

387 fig.set_figheight(8)

388 axes[0].plot(d01.index, d01,color = 'r', ls = '--', marker = 's', lw = 2,label='Điểm năm 1')

389 axes[0].set_xlabel(" Sinh viên khóa 2016 (a)")

390 axes[0].set_ylabel("Điểm 0 đến 10 ")

391 axes[0].legend(loc='best')

392

393 axes[1].plot(d02.index, d02, color = 'y', ls = '--', marker = 's', lw =

2,label='Điểm năm 2')

394 axes[1].set_xlabel(" Sinh viên khóa 2016 (b)")

395 axes[1].set_ylabel("Điểm 0 đến 10 ")

396 axes[1].legend(loc='best')

397

398 axes[2].plot(d03.index, d03, color = 'b', ls = '--', marker = 's', lw =

2,label='Điểm năm 3')

399 axes[2].set_xlabel(" Sinh viên khóa 2016 (c)")

400 axes[2].set_ylabel("Điểm 0 đến 10 ")

401 axes[2].legend(loc='best')

402

403 axes[3].plot(d04.index, d04, color = 'g', ls = '--', marker = 's', lw =

2,label='Điểm thực tập chuyên ngành')

404 axes[3].set_xlabel(" Sinh viên khóa 2016 (d)")

405 axes[3].set_ylabel("Điểm 0 đến 10 ")

406 axes[3].legend(loc='best')

407

415

416 ## So Sánh điểm chuyên ngành và Trung bình tốt nghiệp

417 fig, b = plt.subplots(1, 3, sharey=False, sharex=False)

418 fig.set_figwidth(16)

419 fig.set_figheight(8)

420 b[0].plot(a4.index,a4, color = 'b', ls = '--', marker = 's', lw = 2,label='Ycn')

421 b[0].set_xlabel("SV Cơ khí động lực khóa 2016 (a)")

422 b[0].plot(a5.index,a5, color = 'c', ls = '--', marker = 's', lw = 2,label='Ytn')

423 b[0].set_ylabel("Điểm 0 đến 10 ")

424 b[0].legend(loc='best')

425 426

427 b[1].plot(a4.index,a4, color = 'y', ls = '--', marker = 's', lw = 2,label='Ycn')

428 b[1].set_xlabel("SV Cơ khí chế tạo khóa 2016 (b)")

429 b[1].plot(a5.index,a5, color = 'g', ls = '--', marker = 's', lw = 2,label='Ytn')

430 b[1].set_ylabel("Điểm 0 đến 10 ")

431 b[1].legend(loc='best')

432

433 b[2].plot(a4.index,a4, color = 'violet', ls = '--', marker = 's', lw = 2,label='Ycn')

434 b[2].plot(a5.index,a5, color = 'r', ls = '--', marker = 's', lw = 2,label='Ytn')

435 b[2].set_xlabel("SV Khoa Điện khóa 2016 (c)")

436 b[2].set_ylabel("Điểm 0 đến 10 ")

437 b[2].legend(loc='best')

438 plt.tight_layout()

439 plt.show()

440

441 ## Biểu đồ dạng cột so sánh điểm cn và tn

442 plt.plot(S0 + 0.00,d04,color = 'y', ls = '--', marker = 's', lw = 2,label='Điểm

chuyên ngành')

443 plt.plot(S0 + 0.25,d05,color = 'c', ls = '--', marker = 's', lw = 2,label='Điểm TB tốt nghiệp')

444 plt.ylabel('Điểm của sinh viên từ 0 đến 10')

445 plt.xlabel('Số lượng sinh viên của khóa 2016')

446 plt.show()

447

448 ## so sánh Điểm tốt nghiệp SV

449

450 plt.plot(S1,a5,color = 'g', ls = '--',label='SV Cơ khí động lực')

451 plt.plot(S2,b5,color = 'r', ls = '--',label='SV Cơ khí chế tạo')

452 plt.plot(S3,c5,color = 'b', ls = '--',label='SV Khoa Điện')

453 plt.ylabel('Điểm tốt nghiệp của sinh viên từ 0 đến 10')

454 plt.xlabel('Số lượng sinh viên mỗi Khoa')

455 plt.legend(loc='best')

456 plt.show()

457

458 ### So sánh diem TN và có viec lam sV

459 fig, h = plt.subplots(1, 2, sharey=False, sharex=False)

460 fig.set_figwidth(16)

461 fig.set_figheight(8)

462

463 h[0].plot(e4.index,e4, color = 'b', ls = '--', marker = 's', lw = 2,label='Ycn chưa làm')

464 h[0].set_xlabel("SV có việc làm và chưa việc làm điểm CN (a)")

465 h[0].plot(f4.index,f4, color = 'c', ls = '--', marker = 's', lw = 2,label='Ycn có việc làm')

466 h[0].set_ylabel("Điểm 0 đến 10 ")

467 h[0].legend(loc='best')

468

469 h[1].plot(e5.index,e5, color = 'b', ls = '--', marker = 's', lw = 2,label='Ytn chưa làm')

470 h[1].set_xlabel("SV có việc làm và chưa việc làm điểm TN (b)")

471 h[1].plot(f5.index,f5, color = 'c', ls = '--', marker = 's', lw = 2,label='Ytn có việc làm')

481 plt.plot(s5,f4,color = 'y', ls = '--',label='Điểm Ycn có việc làm')

482 plt.plot(s5,f5,color = 'c', ls = '--',label='Điểm Ytn có việc làm')

483 plt.ylabel('Điểm của sinh viên từ 0 đến 10')

484 plt.xlabel('Số lượng sinh viên khóa 2016')

485 plt.legend(loc='best')

486 plt.show()

487

488 ## 3D

489 from mpl_toolkits.mplot3d import Axes3D

490 import matplotlib.pyplot as plt

491 import numpy as np

492 import pandas as pd

493 import xlrd

494

495 def DIEMSV():

496 book = xlrd.open_workbook(r'./DATA_YEN1.xlsx')

497 sheet = book.sheet_by_name('DIEMSV1')

498 array = [[sheet.cell_value(r, c) for c in range(sheet.ncols)] for r in

range(sheet.nrows)]

499

500 data = np.array(array)

Một phần của tài liệu (LUẬN văn THẠC sĩ) phân tích dữ liệu sinh viên tốt nghiệp bằng phương pháp trực quan (Trang 50 - 81)

Tải bản đầy đủ (PDF)

(81 trang)