zoukankan      html  css  js  c++  java
  • 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还是很强大的,有很多的数据图还没有用到

  • 相关阅读:
    【ML-9-1】支持向量机--软硬间隔与支持向量机
    【ML-8】感知机算法-传统和对偶形式
    【ML-7】聚类算法--K-means和k-mediods/密度聚类/层次聚类
    【ML-7】聚类算法-实例代码
    【ML-6-2】集成学习-boosting(Adaboost和GBDT )
    【ML-6-1】集成学习-bagging(随机森林)
    【ML-5】决策树算法
    【ML-4】逻辑回归--用于分类
    【ML-3.1】梯度下降于牛顿法实例
    树状数组
  • 原文地址:https://www.cnblogs.com/Saurus/p/6875600.html
Copyright © 2011-2022 走看看