天天看點

matplotlib畫圖架構                                       matplotlib概念性内容

                                      matplotlib概念性内容

目錄

                                      matplotlib概念性内容

1.figure和subplot(畫布與子圖)

1.1建立一個fig對象

1.2空figure不能繪圖,必須添加一個或者多個subplot繪圖add_subplot

1.3畫圖

2.顔色、标記、線型

2.1以上參數使用ax1.plot()傳入,具體如下:

3.刻度、标簽、圖例

3.1使用pyplot接口方式、和面向對象方式的差別(建議使用面向對象方法,因為這樣不會混淆)

3.2設定标題,軸标簽,刻度标簽

3.3添加圖例

4.給特殊點添加注釋

4.1通過text/arrow/annotate方法添加

5.儲存到檔案

5.1通過fig.savefig('figpath.png')儲存

6.matplotlib初始化配置設定

  1. figure和subplot(畫布與子圖)

    1. matplotlib的圖像都位于Figure對象中
      1. 建立一個fig對象

        fig = plt.figure( )
        '''
        plt.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, (是否可繪制圖形框)frameon=True, FigureClass=<class 'matplotlib.figure.Figure'>, clear=False, **kwargs)
        
        num:輸入數字,則此數字為圖号;輸入字元串,則畫布的标題會被設定為此字元串;不輸入,則會建立一個新圖号,随着畫布以後的建立,圖号會相應增大。
        figsize:(寬,高)機關英尺
        facecolor:背景色
        edgecolor:邊框色
        '''
                   
      2. 空figure不能繪圖,必須添加一個或者多個subplot繪圖add_subplot

        ax1 = fig.add_subplot(2,2,1)
        ax2 = fig.add_subplot(2,2,2)
                   
        .
      3. 畫圖

        1. plt.plot()指令會在最後一個使用過的axes上面繪制
        2. ax.方法(),也可以通過調用axes執行個體進行畫圖
  2. 顔色、标記、線型

    1. 以上參數使用ax1.plot()傳入,具體如下:

      1. ax1.plot(x, y, 'go--', linewidth=2, markersize=12)
        ax1.plot(x, y, color='green', marker='o', linestyle='dashed',
                linewidth=2, markersize=12,label='data1')
        #可以通過label添加資料的圖例
                   
        .
  3. 刻度、标簽、圖例

    1. 使用pyplot接口方式、和面向對象方式的差別(建議使用面向對象方法,因為這樣不會混淆)

      """
      _____________________________
      pyplot方法
      _____________________________
      """
      #調用時不帶參數,傳回目前參數值
      plt.xlim()
      #調用時帶參數,則設定畫圖參數
      plt.xlim([0,10])
      
      """
      _____________________________
      面向對象方法
      _____________________________
      """
      ax1.get_xlim()
      ax1.set_xlim([0,10])
                 
    2. 設定标題,軸标簽,刻度标簽

      1. #設定軸标簽
        ax1.set_xlable('time')
        
        #設定軸刻度位置(表示在x=[0,10,20,30]這四個值時,顯示刻度)
        ax1.set_xticks([0,10,20,30])
        
        #設定刻度标簽(表示在x=0時,這個刻度顯示的值為‘one’;x=10時,這個刻度顯示的值為'two'等)
        ax1.set_xtickslabels(['one','two','three','four','five'],rotation=30,fontsize='small')
                #rotation,表示把刻度标簽旋轉的度數,當标簽過長時,這個功能很友善
                #fontsize,字型大小
        
        #設定axes的标題
        ax1.set_title('ax1')
                   
        .
    3. 添加圖例

      1. #圖例添加:ax.polt()傳入資料的時候
        ax1.polt(np.random.randn(10),'k--',label='data1')
        
        #圖例顯示
        ax1.legend(loc='best')
        #顯示圖例的位置,一般選擇best就可以了,會把圖例放在一個最佳位置
        
                   
  4. 給特殊點添加注釋

    1. 通過text/arrow/annotate方法添加

      ax1.annotate('a1',xy=(10,data[11]),xytext=(13,3))
      #a1,為要添加的注釋text;
      #xy,為要注釋的具體點坐标
      #xytext為要注釋的文字的坐标位置
                 
  5. 儲存到檔案

    1. 通過fig.savefig('figpath.png')儲存

  6. matplotlib初始化配置設定

    1. plt.rc('fig對象',figsize=(10,10),axes=,xtick=,grid=,legend=)等方法建議查閱https://matplotlib.org/api/matplotlib_configuration_api.html?highlight=rc#matplotlib.rc