Python模塊之Matplotlib

Matplotlib

seaborn: 基於Matplotlib的高層會圖庫

import matplotlib.pyplot as plt

三層結構

  1. 容器層

    1. Canvas:畫布
    2. Figure:圖
    3. Axes:座標系,繪圖區

    特點:

    • 一個figure(畫布)可以包含多個axes(座標系/繪圖區),但是一個axes只能屬於一個figure。
    • 一個axes(座標系/繪圖區)可以包含多個axis(座標軸),包含兩個即爲2d座標系,3個即爲3d座標系
  2. 輔助顯示層

Axes外觀(facecolor)、邊框線(spines)、座標軸(axis)、座標軸名稱(axis label)、座標軸刻度(tick)、座標軸刻度標籤(tick label)、網格線(grid)、圖例(legend)、標題(title)

  1. 圖像層

    Axes內通過plot、scatter、bar、histogram、pie等函數根據數據繪製出的圖像。

基礎繪圖

  • plt.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class ‘matplotlib.figure.Figure’>, clear=False, **kwargs

    • 創建畫布, 返回figure對象
    • num: 編號
    • figsize: 大小.默認是(6.4, 4.8)
    • dpi: 分辨率.默認是100
    • facecolor: 背景顏色. 默認是w 白色
    • edgecolor: 邊框顏色.默認是w 白色
    • frameon: 邊框. False 不繪製邊框
    • clear: 清除
  • plt.savefig(fname, dpi=None, facecolor=‘w’, edgecolor=‘w’,
    orientation=‘portrait’, papertype=None, format=None,
    transparent=False, bbox_inches=None, pad_inches=0.1,
    frameon=None, metadata=None)

    • 保存圖片到指定路徑
    • plt.show()會釋放figure資源, 必須在show之前保存
  • plt.show()

    • 顯示圖片
  • plt.xticks(ticks=None, labels=None, **kwargs)

    • 獲取或設置x軸的當前刻度
    # 設置刻度和標籤
    plt.xticks(np.arange(0, 1, step=0.2))
    # 獲取刻度和標籤
    locs, labels = plt.xticks()
    
  • plt.yticks()

    • 獲取或設置y軸的當前刻度
  • plt.xlabel(xlabel, fontdict=None, labelpad=None, **kwargs)

    • 設置x軸的標籤
  • plt.xlabel(xlabel, fontdict=None, labelpad=None, **kwargs)

    • 設置y軸的標籤
  • plt.title(label, fontdict=None, loc=‘center’, pad=None, **kwargs)

    • 設置標題
  • plt.legend(*args, **kwargs)

    • 設置圖例
    • loc: 圖例位置. best 自動選擇最好的位置
    Location String Location Code
    ‘best’ 0
    ‘upper right’ 1
    ‘upper left’ 2
    ‘lower left’ 3
    ‘lower right’ 4
    ‘right’ 5
    ‘center left’ 6
    ‘center right’ 7
    ‘lower center’ 8
    ‘upper center’ 9
    ‘center’ 10
  • plt.plot(*args, scalex=True, scaley=True, data=None, **kwargs)

    • 顯示圖像
    • x,y: x/y值, 類數組/標量
    • fmt\ 定義參數的快捷方法,包括顏色color/線型linestyle/標記marker
    • 與fmt衝突時,關鍵字參數優先
    # 效果相同
    plot(x, y, 'go--')
    plot(x, y, color='green', marker='o', linestyle='--')
    
    • data: 可索引對象. 需要一併選擇標籤名稱在對應的x/y軸繪製
  • 在同一座標系當中的不同圖形, 多次plot即可

折線圖

# 數據
x = range(60)
y_sh = [random.uniform(15, 18) for _ in x]
y_bj = [random.uniform(1, 3) for _ in x]
# 畫布
plt.figure(figsize=(20, 8), dpi=80)
# 顯示
plt.plot(x, y_sh)
# 座標軸刻度
plt.xticks(x[::5], [f'11點{i}分' for i in x][::5])
plt.yticks(range(40)[::5])
# 網格
plt.grid(True, linestyle='--', alpha=.5)
# 描述
plt.xlabel('時間')
plt.ylabel('溫度')
plt.title("中午11點0分到12點之間的溫度變化圖示")

散點圖

柱狀圖

直方圖

餅圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章