• matplotlib基本函数


    数据分析
        matlab
        Numpy + scipy + pandas +matplotlib
        数据计算 +科学应用+数据清洗+数据可视化
    1 Numpy概述
        1 基于c语言的python接口的数值算法库
        2 开源免费
        3 弥补了python语言在数值计算方面的短板
        4 作为常用科学计算工具的底层支撑
    2 Numpy的性能
        1 简化代码编写,提高开发效率
        2 通过优化底层实现,提高运行速度
        基础:
            1 数组
            2 Numpy中的数组是ndarray类实例化的对象:
                实例数据:数组的内容
                元数据:对数组的描述
                大部分对数组的操作仅仅是对元数据的操作,以此提高执行性能
            3 Numpy中的数组必须是同质的,即所有元素的数据类型必须完全相同
            4 dtype和shape属性分别表示元素类型和维度
            5 实例化
                np.arange(起始值,终止值,步长)
                默认起始值0
                默认步长:1
                np.array(任何可被解释为数组的序列)
            6 类型转换astype(目标类型)->转换后的新数组
            7 '<U21' 表示字符串,其中每个字符都是小端字节序的21位Unicode字符
        3 多维数组和元素索引
            数组的维度表示为一个元组:(高维度数->低维度数)
            一维数组,6个元素:(6,)
            二维数组,2行3列:(2,3)
            三维数组,2页3行4列:(2,3,41 通过下标运算符访问数组中的元素
                2 数组[页标][行标][列标]
                3 数据类型
                    存储形式,处理方式
                    1 内置类型
                        布尔型
                        bool_ : True/False
                        整型
                        有符号 :int8/int16/int32/int64
                        无符号 : uint8/uint16/uint32/uin64
                        浮点型: float16/float32/float64
                        复数型 :complex64/complex128
                    2 复合类型
                        有多个相同或不同类型的字段组合而成的类型
                        np.array(..,dytpe=复合类型)
                    3 类型字符码
                        bool_:?
                        有符号整型:i1/2/4/8
                        无符号整型:u1/2/4/8
                        浮点型: f2/4/8
                        复数型:c8/16
                        字符串:U<字符数>
                        日期时间:M
                        字节序(针对多字节整型):</>/=表示小端/大端/硬件
                    4 切片
                        数组[起始:终止:步长]
                        默认起始:首(正步长)/尾(负步长)
                        默认终止:尾后(正步长)/首前
                        默认步长:1
                    5 变维
                        1 视图变维:元数据独立,实际数据共享
                            1 数组.reshape(新维度) ->新数组
                            元素数和维度数必须匹配
                            2 数组.ravel() -> 得到的是一维数组
                            3 复制变维:元数据和实际数据都是独立的
                                数组.flatten() -->一维数组 (数组运算不会改变)
                            4 就地变维:修改元数据的值(维度信息,不会产生新的数组对象)
                                数组.shape = 新维度
                                数组.resize(新维度)
                    6  组合拆分
                        1 垂直组合:沿着垂直方向组合两个小的同维数组为一个大数组
                            np.vstack((上,下))
                        
                            np.concatenate((上,下),axis=0) 
                                axis : 轴向,用维度的下标表示 0为行,,1为列
                        2 水平组合:沿着水平方向组合两个小的同维数组为一个大数组
                            np.hstack((左,右))
                            np.concatenate((左,右),axis=1)
                        3 深度组合:沿着纵深方向组合两个小的同维数组为一个大数组
                            np.dstack((前,后))  会升维
                        4 行组合:以两个一维数组按照行的方式组合成一个二维数组
                            np.row_stack((上,下))
                        5 列组合:以两个一维数组按照列的方式组合成一个二维数组
                            np.column_stack((左,右))
                        6 垂直拆分:将一个大的数组沿着垂直方向拆分成若干个小的同维数组
                            np.vsplit(被拆分数组,拆分份数)
                            np.split(被折分数组,拆分份数,axis=0)
                        7 水平拆分:将一个大的数组沿着水平方向拆分成若干个小的同维数组
                            np.hsplit(被折分数组,拆分份数)
                            np.split(被折分数组,拆分份数,axis=1)
                        8 深度拆分:将一个大的数组沿着纵深方向拆分成若干个小的同维数组
                            np.dsplit(被拆分数组,拆分份数)
                    7 ndarray的属性
                        dtype -元素的数据类型
                        shape - 数组的维度
                        ndim - 数组的维数,len(shape)
                        size - 数组的元素数,shape中元素相乘
                        itemsize - 元素字节数,与dtype相关
                        nbytes - 总字节数,size x itemsize
                        T - 转置视图
                        real - 复数数组的实部视图
                        imag - 复数数组的虚部视图
                        flat - 扁平迭代器
                    8 ndarray <==>list
                        np.array(列表)
                            
    二:数据可视化(Matplotlib)
        1 基本绘图
            plot(水平坐标,垂直坐标)
        2 线型,线宽和颜色
            plot(...,linestyle=线型,linewidth=线宽,color=颜色,...)
            线形:[-]/--/:./o/o-/...
            线宽:0-oo
            color:dodgerblue/orangeered/limegreen/red/blue/...
        3 设置坐标范围
            xlim(水平坐标最小值,水平坐标最大值)
            ylim(水平坐标最大值,水平坐标最大值)
            坐标范围越大,图形越小,反而反之。
        4 设置坐标刻度
            xticks([水平轴刻度位置])  
            yticks([垂直轴刻度位置])
            表示数学的字符pi(  [r'$-pi$']   )
            表示数学2分之pi (  r'$-frac{pi}{2}$'  )
        5 设置坐标轴属性
            ax = gca() # 获取当前坐标轴图
            ax.spines['left'] - 左纵轴
                ax.spines['left'].set_position(('data', 0))
            ax.spines['right'] - 右纵轴
            ax.spines['top'] - 上横轴
            ax.spines['bottom'] - 下横轴
            XX轴.set_position((坐标系,坐标值)) #设置位置
                
            XX轴.set_color(颜色) #设置颜色
                ax.spines['top'].set_color('none')
        6 图例
            plot(...,label=图例标签,...)
            legend([loc=显示位置])
        7 添加特点
            scatter(水平坐标,垂直坐标,s=大小,marker=点型,
                edgecolor=边缘色,facecolor=填充色,zorder=Z顺序)
        8 备注
            annotate(
                备注文本,
                xy =目标坐标,
                xycoords =目标坐标系,
                xytext=文本坐标,
                textcoords=文本坐标系,
                fontsize=字体大小,
                arrowprops=箭头属性)
        9 图形(窗口)对象
            figure(窗口名(标题栏文本),figsize=大小,dip=分辨率,facecolor=颜色)
            如果与指定窗口名对应的图形对象不存在,那么就新建一个图形窗口,如果已存在,那么不会再新建图形窗口,而是将已存在的那个图形窗口设置为当前窗口
            title(窗口标题,fontsize=字体大小)
            xlabel(垂直轴标签,fontsize=字体大小)
            tick_params(labelsize=刻度标签字体大小)
            grid(linestyle=网格线型)
        10 子坐标图
            1 矩阵布局
                subplot(行数,列数,图号)
                tight_layout() #紧凑布局
            2 删格布局
                删格定位器 = mp.GridSpec(行数,列数)
                subplot(删格定位器[行,列]
                
            3 自由布局
                axes([左,底,宽,高]) # 归一化单位
        11 刻度定位器
            xxxLocator(定位规则)
            ax = gca()
            ax.xaxis  水平坐标
            ax.yaxis  垂直坐标
            坐标轴.set_major_locator(刻度定位器) #主刻度
            坐标轴.set_minor_locator(刻度定位器) #次刻度
            mp.axis('off') #关闭坐标轴
        12 区域填充
            fill_between(水平坐标,起点垂直坐标,终点垂直坐标,color=颜色,alpha=透明度    )
        13 条形图
            bar(水平坐标,绝对高度,相对宽高,color=颜色,label=图例标签,alpha=透明度)
        14 饼图
            pie(值数组,间隙数组,标签数组,颜色数组,shadow =是否带阴影,startangle=起始角度)
        15 等高线图
            contour(点阵X坐标矩阵,点阵Y坐标矩阵,点阵Z坐标矩阵,梯度数,colors=颜色,linewidths=线宽)
        16 热力图
        
        17 网格线
            ax = gca()
            ax.grid(which="major/minor",axis='x/y/both')
        18 半对数坐标
            semi(同plot)
        19 极坐标
            gca(projection='polar') #创建极坐标图
            plot/scatter(极角,极径)
        20 三维坐标系
            from mp;_toolkits.mplot3d import axes3d
            1 三维散点
                ax.scatter(x坐标,Y坐标,Z坐标,s= 大小,marker=点形 ,
                            edgecolor=边缘色,fancecolor=填充色,
                            zorder=Z顺序)
            2 空间曲面
                ax.plot_surface(点阵X坐标,点阵Y坐标矩阵,点阵Z坐标矩阵,rstride=行跨距,
                                cstride=列跨距,cmap=颜色映射)
                ax.plot_wireframe(点阵X坐标矩阵,点阵Y坐标矩阵,点阵Z坐标矩阵,
                                rstride=行跨距,cstride=列跨距,linewidth=线宽,color=颜色)
  • 相关阅读:
    MyBatis 延迟加载
    超经典的 25 道 MyBatis 面试题
    公钥与私钥,HTTPS详解
    分布式,集群,微服务的理解
    单例模式的饿汉式和懒汉式的实现以及比较它们的区别比较(Java实现)
    Mybatis的一级缓存和二级缓存详解
    Maven install没有将jar包加载到本地仓库
    Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
    数据结构_C语言_单链表
    Java实现一个简单的LRUCache
  • 原文地址:https://www.cnblogs.com/Skyda/p/10071194.html
Copyright © 2020-2023  润新知