科学计算和可视化
numpy
numpy库中常用的数组创建函数
查看ndarray类的常用属性
ndarray类的形态操作方法
对视图的操作都会直接反映到源数组。如果不想影响原数组,需要进行复制操作,利用.copy()函数进行复制操作。
numpy库中的算术运算函数
numpy库的比较运算函数
上面这些函数返回的都是布尔数组,表示两个数组中对应元素值的比较结果。
np.less([1, 2], [2, 2])
##输出是array([True, False], dtype=bool)
numpy库的运算函数
numpy库还有很多函数,需要使用的时候到官网查吧!先了解这么多!
matplotlib,pyplot
该库提供了一批操作和绘图函数,每个函数代表对图像进行的一个操作。
plt库的绘图区域函数
函数 | 描述 |
---|---|
plt.figure(figsize=None,facecolor=None) | 创建一个全局绘图区域 |
plt.axes(rect, axisbg='w | 创建一个坐标系风格的子绘图区域 |
plt.subplot(nrows, ncols, plot_number) | 在全局绘图区域中创建一个子绘图区域 |
plt.subplots_adjust() | 调整自绘图区域的布局 |
plt库的读取和显示函数
函数 | 描述 |
---|---|
plt.legend() | 在绘图区域中加上图注 |
plt.show() | 显示创建的绘图对象 |
plt.matshow() | 在窗口显示数组矩阵 |
plt.imshow() | 在axes上显示图像 |
plt.imsave() | 保存数组为图像文件 |
plt.imread() | 从图像文件中读取数据 |
import matplotlib.pyplot as plt
plt.figure(figsize=(8, 4))
##figure函数创建一个全局绘图区域,并且使它成为当前的绘图对象,figsize
##指定绘图区域的宽度和高度,以英寸为单位。
plt.subplot(322)
##在全局绘图区域中创建子绘图区域,subplot(nrows, ncols, plot_number)
##表示将全局绘图区域划分成nrows行和ncols列,并根据先行后列的计数方式在plot_number位置
##生成一个坐标系。
plt.show() ##显示
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
##使用下面两行代码更改默认设置,SimHei表示黑体
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
def Draw(pcolor, nt_point, nt_text, nt_size):
plt.plot(x, y, 'y', label="$exp_decay$", color=pcolor, linewidth=3, linestyle="-")
plt.plot(x, z, "b--", label="$cos(x^2)$", linewidth=1)
plt.xlabel('时间(s)')
plt.ylabel('幅度(mV)')
plt.title("阻尼衰减曲线绘制")
plt.annotate('$\cos(2 \pi t) \exp(-t)$', xy=nt_point, xytext=nt_text, fontsize=nt_size,\
arrowprops=dict(arrowstyle='->', connectionstyle="arc3,rad=.1"))
##配合箭头在曲线绘图界面添加动态注释
def Shadow(a, b):
ix = (x>a) & (x<b)
plt.fill_between(x,y,0,where=ix,facecolor='grey', alpha=0.25)
plt.text(0.5 * (a + b), 0.2, "$\int_a^b f(x)\mathrm{d}x$", \
horizontalalignment='center')
def XY_Axis(x_start, x_end, y_start, y_end):
plt.xlim(x_start, x_end)
plt.ylim(y_start, y_end)
plt.xticks([np.pi/3, 2 * np.pi/3, 1 * np.pi, 4 * np.pi/3, 5 * np.pi/3], \
['$\pi/3$', '$2\pi/3$', '$\pi$', '$4\pi/3$', '$5\pi/3$'])
x = np.linspace(0.0, 6.0, 100)
y = np.cos(2 * np.pi * x) * np.exp(-x)+0.8
z = 0.5 * np.cos(x ** 2)+0.8
note_point,note_text,note_size = (1, np.cos(2 * np.pi) * np.exp(-1)+0.8),(1, 1.4), 14
fig = plt.figure(figsize=(8, 6), facecolor="white")
plt.subplot(111)
Draw("red", note_point, note_text, note_size)
XY_Axis(0, 5, 0, 1.8)
Shadow(0.8, 3)
plt.legend()
plt.savefig('sample.JPG') ##将产生的坐标图保存为文件
plt.show()
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
##用于支持中文
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
labels = np.array(['综合', 'KDA', '发育', '推进', '生存','输出'])
nAttr = 6
data = np.array([7, 5, 6, 9, 8, 7])
angles = np.linspace(0, 2*np.pi, nAttr, endpoint=False)
data = np.concatenate((data, [data[0]]))
angles = np.concatenate((angles, [angles[0]]))
##连接函数用于将数据和角度首尾闭合起来,便于调用plot()函数进行绘制
fig = plt.figure(facecolor="white")
plt.subplot(111, polar=True) ##建立极坐标的子分区, polar指明绘制的类型是极坐标
plt.plot(angles,data,'bo-',color ='g',linewidth=2)
plt.fill(angles,data,facecolor='g',alpha=0.25)
##plt.thetagrids(angles*180/np.pi, labels)
plt.figtext(0.52, 0.95, 'DOTA能力值雷达图', ha='center')
plt.grid(True)
plt.show()
库函数真是太多了,记不住哎!等到用的时候查吧!