一、库函数介绍
1. numpy库
NumPy(Numeric Python)提供了一个N维的数组类型ndarray,Numpy底层使用C语言编写,内部解除了GIL(全局解释器锁),其对数组的操作速度不受Python解释器的限制,效率远高于纯Python代码。
ndarray到底跟原生python列表的区别:
ndarray中的所有元素的类型都是相同的,而Python列表中的元素类型是任意的,所以ndarray在存储元素时内存可以连续,而python原生list就只能通过寻址方式找到下一个元素,这虽然也导致了在通用性能方面Numpy的ndarray不及Python原生list,但在科学计算中,Numpy的ndarray就可以省掉很多循环语句,代码使用方面比Python原生list简单的多。
2. matplotlib库
matplotlib 是一个 Python 的 2D绘图库,也是Python编程语言及其数值数学扩展包 NumPy的可视化操作界面。它利用通用的图形用户界面工具包,如Tkinter, wxPython, Qt或GTK+向应用程序嵌入式绘图提供了应用程序接口(API)。此外,matplotlib还有一个基于图像处理库(如开放图形库OpenGL)的pylab接口,其设计与MATLAB非常类似--尽管并不怎么好用。SciPy就是用matplotlib进行图形绘制。
二、用雷达图表示python123中的成绩数据
1 import numpy as np 2 import matplotlib.pyplot as plt 3 import matplotlib 4 matplotlib.rcParams['font.family']='LiSu'#定义字体 5 matplotlib.rcParams['font.sans-serif'] = ['LiSu'] 6 labels=np.array(['第一周','第二周','第三周','第四周','第五周','第六周'])#定义标签 7 data=np.array([8,10,9,10,11,7]) 8 angles=np.linspace(0,2*np.pi,6,endpoint=False) 9 data=np.concatenate((data,[data[0]])) 10 angles=np.concatenate((angles,[angles[0]])) 11 fig=plt.figure(facecolor="yellow")#颜色设置 12 plt.subplot(111,polar=True) 13 plt.plot(angles,data,'bo-',color='g',linewidth=2) 14 plt.fill(angles,data,facecolor='g',alpha=0.25) 15 plt.thetagrids(angles*180/np.pi,labels) 16 plt.figtext(0.52,0.95,'xiayiLL的python123成绩雷达图',ha='center')#图像命名 17 plt.grid(True) 18 plt.show()