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=顏色)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM