python数据绘图常用方法总结

挖坑,以后还会更新吧

做数学建模画图使用了matplotlib和numpy,这里简单总结一下常用的用法

一、数据拟合

1、np.polyfit(x, y, n) 使用n次多项式去拟合x,y散点图,返回各个项的系数

2、np.poly1d(a) 返回一个a数组描述的多项式函数

3、np.linspace(l, r, n) 从l到r上生成n个数(间距相等) 

二、二维颜色图的绘画

1、首先需要from matplotlib import colors, ticker, cm

x = np.linspace(l1, r1, n1)

y = np.linspace(l2, r2, n2)

X, Y = np.meshgrid(x, y)

这里

X,Y生成一个像网格的矩阵,X[i][1~n2]都等于x[i], Y[1~n1][i]都等于y[i](用于绘制三维图)

2、然后设置图的格式

fig, ax = plt.subplots()  这里fig是衡量z值的条,ax是三维子图

cs = ax.contourf(X, Y, Z, locator = ticker.LinearLocator(), cmap = cm.PuBu_r)

ticker是指刻度的分割标准,有线性,也有log标准,具体可以参见

https://matplotlib.org/api/ticker_api.html

cmap是配色风格,有很多风格可选

3、添加colorbar和显示

cbar = fig.colorbar(cs)

plt.show() 

即可形成一个二维颜色分布图

三、三维图的绘制

1、首先需要from mpl_toolkits.mplot3d.axes3d import Axes3D

并设置一下子图格式

fig = plt.figure(figsize = plt.figaspect(0.5)) (长宽比例)

ax = fig.addsubplot(1, 1, 1, projection='3d') (x, y, z轴显示时的比例,这里为1:1:1)

X,Y同样需要网格化。

2、接下来生成三维平面

surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=False)

fig.colorbar(surf, shrink=0.5, aspect=10)

rstride为行的步幅,linewidth为线宽,antialiased是抗锯齿开关

然后添加colorbar,分成10份,刻度为每半份一个

3、最后plt.show()即可

4、另一种三维图的样式是plot_wireframe,这个是没有颜色的

四、关于坐标轴

set_xlabel()设置x轴的标识

set_xticks()设置x轴的刻度([]代表无刻度)

先简单做到这里,以后遇到更多的应用会更新吧

不得不说matplotlib还是很强大的,有很多的数据图还没有用到

原文地址:https://www.cnblogs.com/Saurus/p/6875600.html