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还是很强大的,有很多的数据图还没有用到
最新文章
- 用js加密你的重要信息
- AngularJS向指令传递数据
- Poj(3686),最小权匹配,多重匹配,KM
- Ubuntu11.10 更新软件源source.list (ZT)
- 【转】获取android设备 id
- 如何区分Shapefile,Coverage,Geodatabase(转载)
- DevExpress GridControl一些属性使用方法总结
- Spring第五篇【cglib、手动实现AOP编程】
- 菜鸟玩云计算之二十:saltstack入门初步
- 【机器学习】--FP-groupth算法从初始到应用
- Linux服务器运维基本命令
- 动手做webserver的核心之http解析
- No cached version of cn.lightsky.infiniteindicator:library:1.2.2 available for offline mode.
- Java 虚拟机面试题全面解析(干货)
- luogu3810 陌上花开 (cdq分治)
- CF 987
- vue实现一个简单的选项卡
- 【DL】梯度下降小结
- to refactor for refactor
- 浅谈cookie、session