matplotlib介紹&基本使用&座標系顯示調整

跌跌撞撞進大坑發表於2020-12-15

matplotlib介紹&基本使用&座標系顯示調整

一、框架結構:

1.後端層(Backend)

  • 實現了大量抽象的介面類,這些API用來在底層實現圖形元素的一個個類
    • FigureCanvas物件實現了繪圖區域這一概念
    • Renderer物件在FigureCanvas上繪圖

2.美工層(Artist)

  • 圖形中所有能看到的元素都屬於Artist物件
    • Figure:指整個圖形
    • Axes(座標系)
    • Axis(座標軸)

3.指令碼層(Scripting)

  • pyplot模組就是我們呼叫matplotlib程式包的介面

二、基本使用流程:

1.建立一個figure

  • plt.figure(figsize=(20,8), dpi=80)

    • figsize是大小,dpi是精度

2.準備x,y座標的資料

3.畫圖,顯示

  • plt.plot(x,y, label=“xxx”)

    • 多次plot,可在同一個figure畫多個折線圖
  • plt.show()

三、常用API

1.入口API:matplotlib.pyplot

2.折線圖

  • 特點:能夠顯示資料的變化趨勢,反映事物的變化情況。(變化)
  • plt.plot(x,y, color=‘r’, linestyle=’–’, label=‘xxxx’)(紅色的 虛線)

3.直方圖:

  • 特點:繪製,連續性的資料展示一組或者多組資料的分佈狀況(統計)

  • plt.hist(x, bins=None, normed=None, **kwargs)

    • bins:表示有多少個矩形框,density(舊庫用normed):bool,optional,頻率或者頻數,預設頻數,值1為頻率

4.柱狀圖:

  • 特點:繪製連離散的資料,能夠一眼看出各個資料的大小,比較資料之間的差別。(統計)

  • plt.bar(x, width, align=‘center’, **kwargs)

    • plt.bar(x, y, width=0.5, color=[‘b’,‘r’,‘g’,‘y’,‘c’,‘m’,‘y’,‘k’,‘c’,‘g’,‘g’])

5.散點圖:

  • 特點:判斷變數之間是否存在數量關聯趨勢,展示離群點(分佈規律)

    • plt.scatter()
  • pandas繪製兩兩特徵之間相關性

    • 兩兩關聯散點圖
    • frame = data[[‘open’,‘volume’, ‘ma20’, ‘p_change’, ‘turnover’]]
    • pd.plotting.scatter_matrix(frame, figsize=(20, 8))

6.餅圖:

  • 常用於:分類的佔比情況(不超過9個分類)

  • plt.pie(x, labels=,autopct=,colors)

    • x:數量,自動算百分比
    • labels:每部分名稱
    • autopct:佔比顯示指定%1.2f%%
    • colors:每部分顏色

四、座標系顯示效果調整

1.增加標題、x軸y軸描述資訊

  • plt.xlabel(“時間”)、plt.ylabel(“價格”)、plt.title(“xxxxxxx”)

    • 設定橫縱座標的名稱以及對應字型格式
    • font2 = {‘family’ : ‘Times New Roman’,‘weight’ : ‘normal’,‘size’:20}

      • plt.xlabel(“時間”,font2)、plt.ylabel(“價格”,font2)

2.美化x,y的刻度值 plt.xticks(引數1,引數2)

  • 第一個引數必須是刻度數字型別,第二個是對應著第一個數字的中文描述

    增加以下兩行程式碼

    # 構造中文列表的字串
    x_ch = ["11點{}分".format(i) for i in x]
    y_ticks = range(40)
    # 修改x,y座標的刻度
    plt.xticks(x[::5], x_ch[::5])
    plt.yticks(y_ticks[::5])
    

3.刻度字型大小13

  • plt.tick_params(labelsize=13) —刻度字型大小13

4.新增圖形註釋:

  • plt.legend(loc=‘best’) —“best”是最佳顯示,還有其他選擇

5.annotate或者text新增圖的註釋

  • plt.annotate( ‘這是一個拐點’, xy=(70, 1) , arrowprops=dict(arrowstyle=’->’), xytext=(50, 10))
    • xy=(60, 10) # 箭頭指向位置
    • arrowprops=dict(arrowstyle=’->’) #自定義箭頭樣式
    • xytext=(30, 5)) # 文字位置
  • plt.text(30, 2, ‘這是一段文字’)

6.圖形本地儲存:

  • plt.savefig(PATH)

相關文章