天天看點

Python資料分析與展示:matplotlib繪圖庫入門-6plot()繪圖函數中文顯示pyplot文本顯示函數繪圖區域代碼執行個體

參考文檔: https://matplotlib.org/gallery/index.html

plot()繪圖函數

plt.plot(x, y, format_string, **kwargs)

x x軸 清單或數組
y y軸 清單或數組
fromat_string 格式字元串

    顔色字元
        b,藍色
        g,綠色
        r,紅色
        c,青綠色cyan
        m,洋紅色magenta
        y,黃色
        k,黑色
        w,白色
        #008000 RGB顔色
        0.8 灰階值

    風格字元
        -  實線
        -- 破折線
        -. 點劃線
        : 虛線
        '' 無線條

    标記字元
        . 點标記 
        , 像素标記
        o 實心圈标記
        v 倒三角标記
        ^ 上三角标記
        > 右三角标記
        < 左三角标記
        1 下花三角标記
        2 上花三角标記
        3 左花三角标記
        4 右花三角标記
        s 實心方形标記
        p 實心五角标記
        * 星型标記
        h 豎六邊形标記
        H 橫六邊形标記
        + 十字标記
        x x标記
        D 菱形标記
        d 瘦菱形标記
        | 垂直線标記

**kwargs
    color 控制顔色 color="green"
    linestyle 線條風格 linestyle="dashed"
    marker 标記風格 marker="o"
    markerfacecolor 标記顔色  markerfacecolor="blue"
    markersize 标記尺寸 markersize=20
    ...      

中文顯示

matpoltlib預設不支援中文

方式一:matplotlib.rcParams全局設定(字典)

    font.family 顯示字型
        SimHei 中文黑體
        Kaiti 中文楷體
        LiSu  中文隸書
        FangSong  中文仿宋
        YouYuan  中文幼圓
        STSong  華文宋體

    font.style 字型風格 正常normal 斜體 italic
    font.size 字型大小  整數字号或large x-small

方式二 單獨設定參數 fontproperties
      

pyplot文本顯示函數

plt.xlabel()  x軸文本标簽
plt.ylabel()  y軸文本标簽
plt.title()  圖形整體标簽
plt.text()   任意位置增加文本
plt.annotate()  帶箭頭的注解      

繪圖區域

1、plt.subplot(nrows, ncols, plot_number)

2、plt.subplot2grid(GridSpec, CurSpec, colspan=1, rowspan=1)
    設定網格,選中網格,确定選中行列區域數量,編号從0開始
    例如:plt.subplot2grid((3,3), (1,0), colspan=2)

3、GridSpes類
    from matplotlib.gridspec import GridSpec
    gs = GridSpec(3, 3)
    ax1 = plt.subplot(gs[0, :])      

代碼執行個體

引入子產品

# -*- coding: utf-8 -*-

# @File    : matplotlib_demo.py
# @Date    : 2018-05-06

from matplotlib import rcParams
import matplotlib.pyplot as plt
import numpy as np      

繪制圖形并儲存

def foo1():
    # 設定y軸數值
    plt.plot([3, 1, 4, 5, 2])

    # 設定y軸标簽
    plt.ylabel("grade")

    # 儲存,預設為png, dpi圖檔品質
    plt.savefig("img1", dpi=600)

    # 顯示
    plt.show()      
Python資料分析與展示:matplotlib繪圖庫入門-6plot()繪圖函數中文顯示pyplot文本顯示函數繪圖區域代碼執行個體

繪制x 軸和 y 軸的資料

def foo2():
    plt.plot([1, 2, 3, 4, 5], [3, 1, 4, 5, 2])
    plt.ylabel("grade")

    # 設定x軸,y軸起止點坐标
    plt.axis([1, 5, 0, 6])

    plt.savefig("img2", dpi=600)
    plt.show()      
Python資料分析與展示:matplotlib繪圖庫入門-6plot()繪圖函數中文顯示pyplot文本顯示函數繪圖區域代碼執行個體

多條線條

def foo3():
    a = np.arange(10)
    plt.plot(a, a*1.5, a, a*2.5, a, a*3.5, a, a*4.5)

    plt.savefig("img3", dpi=600)
    plt.show()      
Python資料分析與展示:matplotlib繪圖庫入門-6plot()繪圖函數中文顯示pyplot文本顯示函數繪圖區域代碼執行個體

使用格式字元串

def foo4():
    a = np.arange(10)
    plt.plot(a, a*1.5, 'go-',
             a, a*2.5, 'rx',
             a, a*3.5, '*',
             a, a*4.5, 'b-.'
             )

    plt.savefig("img4", dpi=600)
    plt.show()      
Python資料分析與展示:matplotlib繪圖庫入門-6plot()繪圖函數中文顯示pyplot文本顯示函數繪圖區域代碼執行個體

使用關鍵字标記

def foo5():
    a = np.arange(10)
    plt.plot(a, a*1.5, color="green", linestyle="dashed", marker='o')

    plt.savefig("img5", dpi=600)
    plt.show()      
Python資料分析與展示:matplotlib繪圖庫入門-6plot()繪圖函數中文顯示pyplot文本顯示函數繪圖區域代碼執行個體

使用中文,方式一 全局設定

def foo6():
    # 設定中文樣式
    rcParams["font.family"]="SimHei"  #黑體
    rcParams["font.size"]= 20

    # 繪制曲線
    a = np.arange(0.0, 5.0, 0.02)
    plt.plot(a, np.cos(2*np.pi*a), "r--")
    plt.xlabel("x軸坐标")
    plt.ylabel("y軸坐标")

    plt.savefig("img6", dpi=600)
    plt.show()      
Python資料分析與展示:matplotlib繪圖庫入門-6plot()繪圖函數中文顯示pyplot文本顯示函數繪圖區域代碼執行個體

使用中文,方式二 局部設定

def foo7():
    # 繪制曲線
    a = np.arange(0.0, 5.0, 0.02)
    plt.xlabel("x軸坐标", fontproperties="SimHei", fontsize=20)
    plt.ylabel("y軸坐标", fontproperties="SimHei", fontsize=20)
    plt.plot(a, np.cos(2*np.pi*a), "r--")

    plt.savefig("img7", dpi=600)
    plt.show()      
Python資料分析與展示:matplotlib繪圖庫入門-6plot()繪圖函數中文顯示pyplot文本顯示函數繪圖區域代碼執行個體

設定文本參數

def foo8():
    a = np.arange(0.0, 5.0, 0.02)
    plt.plot(a, np.cos(2*np.pi*a), "r--")
    plt.xlabel("橫軸:時間", fontproperties="SimHei", fontsize=15, color="green")
    plt.ylabel("縱軸:振幅", fontproperties="SimHei", fontsize=15, color="red")
    plt.title("正弦波執行個體$y=cos(2\pi x)$", fontproperties="SimHei", fontsize=25)
    plt.text(5, 1, "$\mu=100$", fontsize=15)

    # 注解
    plt.annotate("$\mu=100$", xy=(2, 1), xytext=(3, 1.3), 
            arrowprops=dict(facecolor="black", shrink=0.1, width=2))
    plt.axis([-1, 6, -2, 2])
    plt.grid(True)  # 顯示網格

    plt.savefig("img8", dpi=600)
    plt.show()      
Python資料分析與展示:matplotlib繪圖庫入門-6plot()繪圖函數中文顯示pyplot文本顯示函數繪圖區域代碼執行個體

繪圖區域1

def foo9():
    def f(t):
        return np.exp(-t) * np.cos(2*np.pi*t)

    a = np.arange(0.0, 5.0, 0.02)

    # 設定繪圖區域
    plt.subplot(2, 1, 1)
    plt.plot(a, f(a))

    # 設定繪圖區域
    plt.subplot(212)
    plt.plot(a, np.cos(2*np.pi*a), "r--")

    plt.savefig("img9", dpi=600)
    plt.show()      
Python資料分析與展示:matplotlib繪圖庫入門-6plot()繪圖函數中文顯示pyplot文本顯示函數繪圖區域代碼執行個體

繪圖區域2

def foo10():
    # 左上區域
    plt.subplot2grid((3,3), (0,0), colspan=2)
    plt.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])

    # 右邊區域
    plt.subplot2grid((3,3), (0,2), rowspan=3)
    plt.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])

    # 左中區域
    plt.subplot2grid((3,3), (1,0), colspan=2)
    plt.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])

    # 左下區域
    plt.subplot2grid((3,3), (2,0), colspan=2)
    plt.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])

    plt.savefig("img10", dpi=600)
    plt.show()      
Python資料分析與展示:matplotlib繪圖庫入門-6plot()繪圖函數中文顯示pyplot文本顯示函數繪圖區域代碼執行個體

繪圖區域3

from matplotlib.gridspec import GridSpec

def foo11():
    # 分割繪圖區域
    gs = GridSpec(3, 3)

    # 在繪圖區域繪圖
    ax1 = plt.subplot(gs[0, :])
    ax1.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])

    ax2 = plt.subplot(gs[1, 0:-1])
    ax2.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])

    ax3 = plt.subplot(gs[2, 0:-1])
    ax3.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])

    ax4 = plt.subplot(gs[1:, 2])
    ax4.plot([1, 2, 3, 4, 5], [2, 1, 2, 1, 2])

    plt.savefig("img11", dpi=600)
    plt.show()      
Python資料分析與展示:matplotlib繪圖庫入門-6plot()繪圖函數中文顯示pyplot文本顯示函數繪圖區域代碼執行個體