Try โ€‚โ€‰HackMD

matplotlib

RogelioKG/matplotlib

References

Document

ๅ››็จฎๅปบๅœ–ๆ–นๅผ

import numpy as np
import matplotlib.pyplot as plt


# figure / add_subplot
# ๅ„ช้ปž๏ผšๆŽจ่–ฆไฝฟ็”จ้€™็จฎๆ–นๅผ โœ…
def method_1():
    fig1 = plt.figure(figsize=(8, 8))
    ax1 = fig1.add_subplot(1, 1, 1)
    fig2 = plt.figure(figsize=(4, 4))
    ax2 = fig2.add_subplot(1, 1, 1)
    x = np.linspace(0, 100, 100)
    (line1,) = ax1.plot(x, x)
    (line2,) = ax2.plot(x, x*x)


# figure / subplot
# ็ผบ้ปž๏ผšๅฆ‚ๆžœๆœ‰ๅคšๅ€‹ fig ๅฐฑ่ชไธๅ‡บๆ˜ฏๅ“ชๅ€‹๏ผŸ
def method_2():
    fig = plt.figure(figsize=(8, 6))
    ax4 = plt.subplot(
        2, 3, 4
    )  # 2x3 ๅญๅœ–ไธญ๏ผŒๅƒ…ๅ…ˆๅ‰ตๅปบ็ฌฌ 4 ๅ€‹ๅญๅœ–๏ผŒ็ญ‰ๅƒนๆ–ผ fig.add_subplot(2, 3, 4)
    ax12 = plt.subplot(2, 3, (1, 2))  # 2x3 ๅญๅœ–ไธญ๏ผŒ็ฌฌ 1 ๅ€‹ๅญๅœ–่ˆ‡็ฌฌ 2 ๅ€‹ๅญๅœ–่žๅˆ
    ax5 = plt.subplot(2, 3, 5, projection="polar")  # ๅ…่จฑๅ–ฎ็จไธ€ๅ€‹ๅญๅœ–ๅ‰ตๅปบ็‚บๆฅตๅบงๆจ™ๅœ–
    ax4.scatter([*range(10)], [*range(10)])  # ็ฌฌ 4 ๅ€‹ๅญๅœ–ๅฐ‡ไฝœ็‚บๆ•ฃไฝˆๅœ–


# subplots
# ๅ„ช้ปž๏ผš็Ÿฉ้™ฃ็ดขๅผ•ๅพˆๆ–นไพฟ
# ็ผบ้ปž๏ผšhightlight ่ชไธๅ‡บๅž‹ๅˆฅ๏ผŸ
def method_3():
    fig, axs = plt.subplots(2, 3)  # ไธ€ๆฌกๅ‰ตๅปบ 2x3 ็š„ๆ‰€ๆœ‰ๅญๅœ–
    axs[1][1].scatter([*range(10)], [*range(10)])  # ็ดขๅผ•ไฝ็ฝฎ [1][1] ็š„ๅญๅœ–ๅฐ‡ไฝœ็‚บๆ•ฃไฝˆๅœ–


# plt
# ๅ„ช้ปž๏ผšๆ‡ถไบบๅŒ…๏ผŒๅฟซ
# ็ผบ้ปž๏ผš็ดฐ้ …้›ฃ่ชฟ
def method_4():
    plt.scatter([*range(10)], [*range(10)])  # 1x1 ๅญๅœ–็›ดๆŽฅ็•ซ


if __name__ == "__main__":
    method_1()
    plt.show()

Manual

้ ่จญ๏ผš๐Ÿ”…

  • ๆจก็ต„ pyplot

    • rcParams

      โ€‹โ€‹โ€‹โ€‹plt.rcParams
      โ€‹โ€‹โ€‹โ€‹#ๅ…จๅŸŸ่ฎŠๆ•ธ ไธ€ไบ›ๅ…จๅŸŸ่จญๅฎšๅฏไพ›่ชฟๆ•ด
      
    • ๅ‡ฝๅผ

      โ€‹โ€‹โ€‹โ€‹plt.show()
      โ€‹โ€‹โ€‹โ€‹#ๅ‡ฝๅผ show (show ๅ‡บๅœ–่กจ)
      โ€‹โ€‹โ€‹โ€‹plt.close()
      โ€‹โ€‹โ€‹โ€‹#ๅ‡ฝๅผ close (้—œ้–‰่ฆ–็ช—)
      โ€‹โ€‹โ€‹โ€‹plt.clf()
      โ€‹โ€‹โ€‹โ€‹#ๅ‡ฝๅผ clf (ๆธ…้™ค fig ๆ‰€ๆœ‰ๅ…งๅฎน)
      
    • ๅปบๅœ–

      โ€‹โ€‹โ€‹โ€‹fig = plt.figure()
      โ€‹โ€‹โ€‹โ€‹    #ๅ‡ฝๅผ figure ๐Ÿ›‘็•ซๅธƒ -> Figure
      โ€‹โ€‹โ€‹โ€‹        # num = ็•ซๅธƒ็š„ID(ๆŒ‡ๅฎšๅŒๅ€‹IDๅฐฑๆœƒ็•ซๅœจๅŒๅ€‹็•ซๅธƒไธŠ)
      โ€‹โ€‹โ€‹โ€‹        # figsize = ็•ซๅธƒๅคงๅฐ(ๅฏฌ,้ซ˜) (inch)
      โ€‹โ€‹โ€‹โ€‹        # dpi = ๆฏ่‹ฑๅฏธ้ปžๆ•ธ
      โ€‹โ€‹โ€‹โ€‹        # facecolor = ่ƒŒๆ™ฏ้ก่‰ฒ
      โ€‹โ€‹โ€‹โ€‹        # edgecolor = ๅค–ๆก†้ก่‰ฒ
      โ€‹โ€‹โ€‹โ€‹        # linewidths = ๅค–ๆก†็ฒ—็ดฐ
      โ€‹โ€‹โ€‹โ€‹        # frameon = ๆ˜ฏๅฆ้กฏ็คบๅค–ๆก†ๅ’Œ่ƒŒๆ™ฏ่‰ฒ
      
      โ€‹โ€‹โ€‹โ€‹ax = plt.subplot()
      โ€‹โ€‹โ€‹โ€‹    #ๅ‡ฝๅผ subplot ๐Ÿ›‘็”ข็”Ÿ1ๅ€‹ๅญๅœ– -> AxesSubplot
      โ€‹โ€‹โ€‹โ€‹        #ๅƒๆ•ธ ๅˆ—ๆ•ธ้‡m, ่กŒๆ•ธ้‡n, ็ดขๅผ•i (ๅฏๅˆไฝตๅœจไธ€่ตทๅฏซๆˆmni)
      โ€‹โ€‹โ€‹โ€‹            # -> ๆ„ๆ€ๆ˜ฏๆŒ‡ๆ•ดๅผต็•ซๅธƒๆœ‰ๅนพๅ€‹ๅญๅœ–
      โ€‹โ€‹โ€‹โ€‹            #    ็ฏ„ไพ‹๏ผš
      โ€‹โ€‹โ€‹โ€‹            #    (2,3,1) ๅฐฑ่กจ็คบๆ•ดๅผต็•ซๅธƒ
      โ€‹โ€‹โ€‹โ€‹            #    2: 2ๅˆ—
      โ€‹โ€‹โ€‹โ€‹            #    3: 3่กŒ (ๆ‰€ไปฅๆœ€ๅคšๅฏไปฅๆ”พ6ๅ€‹ๅญๅœ–)
      โ€‹โ€‹โ€‹โ€‹            #    1: ่ฉฒๅญๅœ–ไฝ”ๆ“šใ€็ดขๅผ•1ใ€‘็š„ไฝ็ฝฎ
      โ€‹โ€‹โ€‹โ€‹            #    1 2 3
      โ€‹โ€‹โ€‹โ€‹            #    4 5 6
      โ€‹โ€‹โ€‹โ€‹            #    ็ฏ„ไพ‹๏ผš
      โ€‹โ€‹โ€‹โ€‹            #    (2,3,(1,4)) ่ฉฒๅญๅœ–ๆฉซ่ทจไฝ”ๆ“šใ€็ดขๅผ•1ๅ’Œ็ดขๅผ•4ใ€‘ๅ…ฉๅ€‹ไฝ็ฝฎ
      
      โ€‹โ€‹โ€‹โ€‹fig, ax = plt.subplots()
      โ€‹โ€‹โ€‹โ€‹    #ๅ‡ฝๅผ subplots ๐Ÿ›‘็”ข็”Ÿm*nๅ€‹ๅญๅœ– -> (Figure, AxesSubplot | AxesSubplot ้™ฃๅˆ— | AxesSubplot ็Ÿฉ้™ฃ )
      โ€‹โ€‹โ€‹โ€‹        #ๅƒๆ•ธ ๅˆ—ๆ•ธ้‡m
      โ€‹โ€‹โ€‹โ€‹        #ๅƒๆ•ธ ่กŒๆ•ธ้‡n
      โ€‹โ€‹โ€‹โ€‹        #ๅƒๆ•ธ sharex = ๅ’Œ่ชฐๅ…ฑไบซx่ปธ
      โ€‹โ€‹โ€‹โ€‹        #ๅƒๆ•ธ sharey = ๅ’Œ่ชฐๅ…ฑไบซy่ปธ
      โ€‹โ€‹โ€‹โ€‹        #ๅƒๆ•ธ figsize = ็•ซๅธƒๅคงๅฐ(ๅฏฌ,้ซ˜) (ๅ–ฎไฝ๏ผšinch)
      โ€‹โ€‹โ€‹โ€‹        #ๅƒๆ•ธ subplot_kw = ๅ…ถ้ค˜ๅƒๆ•ธๅญ—ๅ…ธ
      โ€‹โ€‹โ€‹โ€‹            # 'projection' :
      โ€‹โ€‹โ€‹โ€‹                # 'rectilinear'(๐Ÿ”…็›ด็ทšๆŠ•ๅฝฑ),
      โ€‹โ€‹โ€‹โ€‹                # 'polar'      (ๆฅตๆŠ•ๅฝฑ),
      โ€‹โ€‹โ€‹โ€‹                # '3d'         (3D),
      โ€‹โ€‹โ€‹โ€‹                # 'aitoff'     (ไธ€็จฎ็ญ‰็ฉๆŠ•ๅฝฑ),
      โ€‹โ€‹โ€‹โ€‹                # 'hammer'     (ไธ€็จฎ็ญ‰็ฉๆŠ•ๅฝฑ),
      โ€‹โ€‹โ€‹โ€‹                # 'mollweide'  (ไธ€็จฎ็ญ‰็ฉๆŠ•ๅฝฑ),
      โ€‹โ€‹โ€‹โ€‹                # 'lambert'    (ไธ€็จฎ็ญ‰่ง’ๅœ“้ŒๆŠ•ๅฝฑ)
      
    • fig

      โ€‹โ€‹โ€‹โ€‹from matplotlib.figure import Figure
      โ€‹โ€‹โ€‹โ€‹fig: Figure
      
      โ€‹โ€‹โ€‹โ€‹fig.add_subplot()
      โ€‹โ€‹โ€‹โ€‹#ๆ–นๆณ• add_subplot()
      โ€‹โ€‹โ€‹โ€‹    # (ๆŽจ่–ฆไฝฟ็”จ๏ผšfigure / add_subplot ๅปบๅœ–ๆณ•)
      
      โ€‹โ€‹โ€‹โ€‹fig.savefig()
      โ€‹โ€‹โ€‹โ€‹#ๆ–นๆณ• savefig()
      โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ ๆช”ๆกˆๅ็จฑ.ๅ‰ฏๆช”ๅ
      โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ dpi = ๆฏ่‹ฑๅฏธ้ปžๆ•ธ (ใ€dpi=100ใ€‘ๅคงๆฆ‚ใ€570x441ใ€‘๏ผŒๆ นๆ“š้€™ๅ€‹ๆฏ”ไพ‹๏ผŒdpix2๏ผŒ่งฃๆžๅบฆๅฏฌ้ซ˜x2)
      
    • ax

      โ€‹โ€‹โ€‹โ€‹ax.cla()
      โ€‹โ€‹โ€‹โ€‹#ๅ‡ฝๅผ cla (ๆธ…้™คๅญๅœ–)
      
    • ax (2D)

      โ€‹โ€‹โ€‹โ€‹ax: plt.Axes
      
      • ax.plot()

        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹#ๆ–นๆณ• plot() ๐Ÿ›‘ๆŠ˜็ทšๅœ–
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅ›žๅ‚ณ -> list[line2D]
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ xๅบงๆจ™้™ฃๅˆ—
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ yๅบงๆจ™้™ฃๅˆ—(๐Ÿ”…่‹ฅๅชๅ‚ณๅ…ฅไธ€็ต„้™ฃๅˆ—)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ color = ่‰ฒ็ขผ๏ผš#xxxxxx / ้ก่‰ฒ๏ผšrใ€gใ€bใ€mใ€cใ€y ... / RGB tuple๏ผš(0,0,0)~(1,1,1) / RGBA tuple๏ผš(0,0,0,0)~(1,1,1,1) / RGB tuple๏ผš(0,0,0)~(1,1,1) / RGBA tuple๏ผš(0,0,0,0)~(1,1,1,1)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ marker = ่ณ‡ๆ–™้ปžๅฝข็‹€๏ผš๐Ÿ”…oใ€.ใ€,ใ€v ...
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ markersize = ๐Ÿ”…6
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ linestyle = ็ทšๆขๆจฃๅผ๏ผš๐Ÿ”…solidใ€-ใ€--ใ€-.ใ€: ...
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ linewidth = ็ทšๆข็ฒ—็ดฐ๐Ÿ”…2
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ label = ่ณ‡ๆ–™่ชชๆ˜Žๆจ™็ฑค๏ผŒๅฆ‚ๆžœๆœ‰ๅคš็ญ†ๆ•ธๆ“š่ณ‡ๆ–™๏ผŒไฝฟ็”จlist
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ animated = ่กจ็คบๅ›žๅ‚ณ็š„ line2D ๆ˜ฏ่ฆ่ขซๆ‹ฟไพ†ๆ›ดๆ–ฐ็š„๏ผŒ้€™ๅฏไปฅๅคงๅคงๆ้ซ˜ๅ‹•็•ซๆ•ˆ็އ
        
      • ax.scatter()

        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹#ๆ–นๆณ• scatter() ๐Ÿ›‘ๆ•ฃๅธƒๅœ–
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅ›žๅ‚ณ -> PathCollection
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ xๅบงๆจ™้™ฃๅˆ—
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ yๅบงๆจ™้™ฃๅˆ—(๐Ÿ”…่‹ฅๅชๅ‚ณๅ…ฅไธ€็ต„้™ฃๅˆ—)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ c = ่‰ฒ็ขผ๏ผš#xxxxxx / ้ก่‰ฒ๏ผšrใ€gใ€bใ€mใ€cใ€y ... / RGB tuple๏ผš(0,0,0)~(1,1,1) / RGBA tuple๏ผš(0,0,0,0)~(1,1,1,1)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ cmap = ้ก่‰ฒๅœฐๅœ–๏ผŒๅฆ‚ๆžœ c ็‚บๆ•ธๆ“š่ณ‡ๆ–™๏ผŒๆœƒๆ นๆ“š c ็š„ๆ•ธๆ“šๅฐๆ‡‰ๆŒ‡ๅฎš้ก่‰ฒใ€‚(c=ๆ•ธๆ“š้™ฃๅˆ—,cmap='Set1' -> ๆ นๆ“šๆ•ธๆ“š้™ฃๅˆ—ๆ˜ ๅฐ„ๅˆฐSet1็š„้ก่‰ฒๅœฐๅœ–ไธŠ)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ marker = ่ณ‡ๆ–™้ปžๅฝข็‹€๏ผš๐Ÿ”…oใ€.ใ€,ใ€v ...
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ s = (่ณ‡ๆ–™้ปžๅคงๅฐ) marker size
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ vmin = ๅฐ็…ง้ก่‰ฒๅœฐๅœ–็š„ๆœ€ๅฐๅ€ผ๏ผŒๆ•ธๅ€ผๅฐๆ–ผvminๆ™‚๏ผŒๅชๆœƒ้กฏ็คบๆŸ้ก่‰ฒ
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ vmax = ๅฐ็…ง้ก่‰ฒๅœฐๅœ–็š„ๆœ€ๅคงๅ€ผ๏ผŒๆ•ธๅ€ผๅคงๆ–ผvmaxๆ™‚๏ผŒๅชๆœƒ้กฏ็คบๆŸ้ก่‰ฒ
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ alpha = ่ณ‡ๆ–™้ปž้€ๆ˜Žๅบฆ๐Ÿ”…1๏ผŒ็ฏ„ๅœ 0 (ๅฎŒๅ…จ้€ๆ˜Ž) ๏ฝž 1 (ๅฎŒๅ…จไธ้€ๆ˜Ž)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ linewidths = ่ณ‡ๆ–™้ปžๅค–ๆก†็ฒ—็ดฐ๐Ÿ”…็„กๅค–ๆก†
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ label = ่ณ‡ๆ–™่ชชๆ˜Žๆจ™็ฑค๏ผŒๅฆ‚ๆžœๆœ‰ๅคš็ญ†ๆ•ธๆ“š่ณ‡ๆ–™๏ผŒไฝฟ็”จlist
        
      • ax.bar() / ax.barh()

        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹#ๆ–นๆณ• bar()  ๐Ÿ›‘้•ทๆขๅœ–
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹#ๆ–นๆณ• barh() ๐Ÿ›‘ๆฐดๅนณ้•ทๆขๅœ–
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅ›žๅ‚ณ -> BarContainer
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ xไฝ็ฝฎ้™ฃๅˆ—
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ y้ซ˜ๅบฆ้™ฃๅˆ—
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ width / height(ๆฐดๅนณ) = ๅฏฌๅบฆ๐Ÿ”…0.8
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ bottom = ๅบ•้ƒจไฝ็ฝฎ๐Ÿ”…0(่‹ฅ=ๅ‰ไธ€ๅ€‹y้ซ˜ๅบฆ้™ฃๅˆ—๏ผŒๅ‰‡็‚บ๐Ÿ›‘ๅ †็–Š้•ทๆขๅœ–)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ align = ๅฐ้ฝŠๆ–นๅผ๏ผš๐Ÿ”…centerใ€edge
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ color = (ๅ…ง้ƒจ้ก่‰ฒ) ่‰ฒ็ขผ๏ผš#xxxxxx / ้ก่‰ฒ๏ผšrใ€gใ€bใ€mใ€cใ€y ... / RGB tuple๏ผš(0,0,0)~(1,1,1) / RGBA tuple๏ผš(0,0,0,0)~(1,1,1,1)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ edgecolor = (้‚Šๆก†้ก่‰ฒ) ่‰ฒ็ขผ๏ผš#xxxxxx / ้ก่‰ฒ๏ผšrใ€gใ€bใ€mใ€cใ€y ... / RGB tuple๏ผš(0,0,0)~(1,1,1) / RGBA tuple๏ผš(0,0,0,0)~(1,1,1,1)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ linewidth = ๐Ÿ”…2
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ tick_label = x่ปธๆ–‡ๅญ—๐Ÿ”…xไฝ็ฝฎ้™ฃๅˆ—
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ xerr, yerr = x่ปธใ€y่ปธ็š„่ชคๅทฎ็ฏ„ๅœ๐Ÿ”…0
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ ecolor = ่ชคๅทฎ็ทšๆฎต้ก่‰ฒ๐Ÿ”…้ป‘่‰ฒ
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ capsize = ่ชคๅทฎ็ฏ„ๅœ็š„ไธŠไธ‹็ทšๆขๅฐบๅฏธ๐Ÿ”…0
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ fill = ๆ˜ฏๅฆๅกซๆปฟ๐Ÿ”…True
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ label = ่ณ‡ๆ–™่ชชๆ˜Žๆจ™็ฑค๏ผŒๅฆ‚ๆžœๆœ‰ๅคš็ญ†ๆ•ธๆ“š่ณ‡ๆ–™๏ผŒไฝฟ็”จlist
        
      • ax.pie()

        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹#ๆ–นๆณ• pie() ๐Ÿ›‘ๅœ“้ค…ๅœ– (pct:percentage)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅ›žๅ‚ณ -> tuple[list[Wedge], list[Text], list[Text]]
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ ๆฏ”ไพ‹้™ฃๅˆ—(ไพ‹ๅฆ‚[1,2,1,3]ๅฐฑๆ˜ฏๆŠŠๅœ“้ค…ๅ‡ๅˆ†็‚บ7็ญ‰ๅˆ†๏ผŒไธฆไธ”ไปฅ1/2/1/3ๅกŠๅˆ†็ตฆไธๅŒๆดพ)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ radius = ๅœ“้ค…ๅœ–ๅŠๅพ‘๐Ÿ”…1ใ€‚
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ counterclock = ๅœ“้ค…ๅœ–ๆ–นๅ‘๐Ÿ”…True(้€†ๆ™‚้‡)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ startangle = ่ตทๅง‹่ง’ๅบฆ๐Ÿ”…0ๅบฆ(ๆฐดๅนณๅ‘ๅณ)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ label = ่ณ‡ๆ–™่ชชๆ˜Žๆจ™็ฑค๏ผŒๅฆ‚ๆžœๆœ‰ๅคš็ญ†ๆ•ธๆ“š่ณ‡ๆ–™๏ผŒไฝฟ็”จlist
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ labeldistance = ๆจ™็ฑค่ˆ‡ๅœ“้ค…ๅœ–็š„่ท้›ข๐Ÿ”…1.1
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ explode = ๆดพๅพ€ๅค–ๅปถไผธ็š„่ท้›ข๐Ÿ”…0
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ shadow = ้™ฐๅฝฑ๐Ÿ”…Fasle(็„ก้™ฐๅฝฑ)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ autopct = ๅ…ง้ƒจๆ–‡ๅญ—(่‡ชๅ‹•่จˆ็ฎ—็™พๅˆ†ๆฏ”)๐Ÿ”…็„ก๏ผŒๅฏไฝฟ็”จๅ‡ฝๅผ็”ข็”Ÿๅ’Œ็ต„ๅˆ ('%.1f%%' -> ้กฏ็คบๅฐๆ•ธ้ปžไธ€ไฝ็š„ๆตฎ้ปžๆ•ธ๏ผŒๅพŒๆ–นๅŠ ไธŠ็™พๅˆ†ๆฏ”็ฌฆ่™Ÿ)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ textprops = ๆ–‡ๅญ—ๆจฃๅผๅญ—ๅ…ธ {'color':?,'weight':?,'size':?}
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ wedgeprops = ๆ‰‡ๅฝขๆจฃๅผๅญ—ๅ…ธ {'linewidth':?,'edgecolor':?,'width':?} (่‹ฅwidth<radiusๅ‰‡็‚บ๐Ÿ›‘็”œ็”œๅœˆๅœ–)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ pctdistance = ๅ…ง้ƒจๆ–‡ๅญ—่ˆ‡ไธญๅฟƒ้ปž่ท้›ข๐Ÿ”…0.6
        
      • ax.contour() / ax.contourf()

        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹#ๆ–นๆณ• contour()  ๐Ÿ›‘็ญ‰้ซ˜็ทšๅœ–
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹#ๆ–นๆณ• contourf() ๐Ÿ›‘็ญ‰้ซ˜็ทš้ข็ฉๅœ–
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ xๅบงๆจ™้™ฃๅˆ—
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ yๅบงๆจ™้™ฃๅˆ—
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ z้ซ˜ๅบฆ้™ฃๅˆ—
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ levels = int๏ผš็ญ‰้ซ˜็ทš็š„ๆ•ธ้‡ /
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #             ้™ฃๅˆ—๏ผšไปฅ่ฉฒ้™ฃๅˆ—็‚บ็ญ‰้ซ˜็ทš๏ผŒไธ้Žๆœƒ่‡ชๅ‹•ๅŽปๆމ local max ๅ’Œ local min (ๅฆ‚ๆžœๆœ‰็š„่ฉฑ)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ colors / cmap = ็ญ‰้ซ˜็ทš้ก่‰ฒ๏ผŒ่‹ฅไธ่ถณ levels ็š„ๆ•ธ้‡๏ผŒๅ‰‡ๆœƒ่‡ชๅ‹•้‡่ค‡
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ vmin, vmax = ็ญ‰้ซ˜็ทš้ก่‰ฒ็š„ๆœ€ๅฐๅ€ผ่ˆ‡ๆœ€ๅคงๅ€ผ
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ linewidths = ็ญ‰้ซ˜็ทš็š„็ฒ—็ดฐ
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๆ›ดๅคšๅƒๆ•ธ 
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    # โœ…ๅƒๆ•ธๆŒ‡ๅฎšๆ‡ถไบบๅŒ…๏ผš
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    # x = np.linspace(?,?,step1)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    # y = np.linspace(?,?,step2)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    # z = [[func(x[i],y[j]) for i in range(step1)] for j in range(step2)]
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    # lv = np.linspace(np.min(z), np.max(z), ็ฒพ็ดฐๅบฆ)
        
      • ax.step()

        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹#ๆ–นๆณ• step() ๐Ÿ›‘้šŽๆขฏๆŠ˜็ทšๅœ–
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ xไฝ็ฝฎ้™ฃๅˆ—
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ y้ซ˜ๅบฆ้™ฃๅˆ—
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ where = ๅž‚็›ด็ทšๆฎตๅฐ้ฝŠไฝ็ฝฎ (๐Ÿ”…pre(ๅทฆ)ใ€mid(ไธญ)ใ€post(ๅณ))
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ color = ่‰ฒ็ขผ๏ผš#xxxxxx / ้ก่‰ฒ๏ผšrใ€gใ€bใ€mใ€cใ€y ... / RGB tuple๏ผš(0,0,0)~(1,1,1) / RGBA tuple๏ผš(0,0,0,0)~(1,1,1,1)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ linestyle = ็ทšๆขๆจฃๅผ๏ผš๐Ÿ”…solidใ€-ใ€--ใ€-.ใ€: ...
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ linewidth	็ทšๆข็ฒ—็ดฐ๐Ÿ”…2
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ label = ่ณ‡ๆ–™่ชชๆ˜Žๆจ™็ฑค๏ผŒๅฆ‚ๆžœๆœ‰ๅคš็ญ†ๆ•ธๆ“š่ณ‡ๆ–™๏ผŒไฝฟ็”จlist
        
      • ax.stackplot()

        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹#ๆ–นๆณ• stackplot() ๐Ÿ›‘ๅ †็–ŠๆŠ˜็ทšๅœ–
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ xไฝ็ฝฎ้™ฃๅˆ—
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ y้ซ˜ๅบฆ้™ฃๅˆ— (ๅฆ‚ๆžœๆœ‰ๅคšๆ•ธๆ“š๏ผŒไฝฟ็”จ้€—่™Ÿๅˆ†้š”๏ผŒไพ‹ๅฆ‚๏ผšy1,y2,y3...)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ baseline = ๅŸบ็ทšๆจกๅผ(๐Ÿ”…zero(่‡ชx=0ๅฑคๅฑคๅ †็–Š)ใ€sym(ๅฐ็จฑๆ–ผx=0ๅ †็–Š๏ผŒฮฃyi[k]/2ๅพ—ๅˆฐๅŠๅ’Œ๏ผŒไธฆๅฐ‡ๅ…ถๅ็งปๅˆฐ0)ใ€wiggleใ€weighted_wiggle)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ label = ่ณ‡ๆ–™่ชชๆ˜Žๆจ™็ฑค๏ผŒๅฆ‚ๆžœๆœ‰ๅคš็ญ†ๆ•ธๆ“š่ณ‡ๆ–™๏ผŒไฝฟ็”จlist
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ color = ่‰ฒ็ขผ๏ผš#xxxxxx / ้ก่‰ฒ๏ผšrใ€gใ€bใ€mใ€cใ€y ... / RGB tuple๏ผš(0,0,0)~(1,1,1) / RGBA tuple๏ผš(0,0,0,0)~(1,1,1,1)
        
      • ax.imshow()

        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹#ๆ–นๆณ• imshow() ๐Ÿ›‘็†ฑๅœ–
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ ็Ÿฉ้™ฃ
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ cmap = ้ก่‰ฒๅœฐๅœ–
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ norm = ๆ˜ฏๅฆๆจ™ๆบ–ๅŒ–
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ vmin, vmax = ๅฏ่‘—่‰ฒ็š„ๆœ€ๅฐๅ€ผ่ˆ‡ๆœ€ๅคงๅ€ผ(็„กๆจ™ๆบ–ๅŒ–ๆ™‚ๅ•Ÿ็”จ)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ interpolation = ๆ’ๅ€ผ (ๅฝฑๅƒๆ”พๅคง็ฎ—ๆณ•) (๐Ÿ”…nearest)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ aspect = ้•ทๅฏฌๆฏ” (๐Ÿ”…equal(ๆญฃๆ–นๆ ผๅญ)ใ€auto(ไปฅๆปฟ่ถณ็•ซๅธƒๆฏ”ไพ‹็‚บๅ‰ๆ่‡ชๅ‹•่ชฟๆ•ด))
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ alpha = ้€ๆ˜Žๅบฆ
        
      • ax.hist()

        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹#ๆ–นๆณ• hist() ๐Ÿ›‘็›ดๆ–นๅœ–
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #โš  ๆˆ‘ไธๆ˜ฏ้•ทๆขๅœ–๏ผŒๆˆ‘ๆ˜ฏ็ตฑ่จˆๆ•ธ้‡็š„
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #โš  ็œ‹้ ่จญ็›ดๆ–นๅœ–ๆ™‚๏ผŒๆŒ‰็…งx่ปธ้–“่ท้ƒฝๆ˜ฏไปฅ[,)[,)...[,]ไพ†ๅš็ตฑ่จˆๆ•ธ้‡
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #โš  ้€™ๆจฃ่จญๅฎš๏ผšbins=x.max()-x.min(), range=(x.min(),x.max())๏ผŒๆŸฑๅญ็š„ๆ•ธ้‡ๅฐฑๆœƒๆ˜ฏๅบ•ไธ‹ๅทฆ้‚Š็š„ๆ•ดๆ•ธ(ๅฆ‚ๆžœๆ˜ฏๆ•ดๆ•ธ็ตฑ่จˆ็š„่ฉฑ)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ x่ณ‡ๆ–™้™ฃๅˆ—
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ range = x่ปธ็š„็ฏ„ๅœtuple๐Ÿ”…(x.min(), x.max())
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ bins = int๏ผšๆ นๆ“šrangeๅˆ†ๆˆnๆ นๆŸฑๅญ
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #            list๏ผšๅ…ฉๅ…ฉ็ฏ„ๅœๅ…ง็ตฑ่จˆ(ๅ‡่จญ็ตฆๅฎš[1,2,4,8,10]->ๅˆ†ๅˆฅ็ตฑ่จˆ[1,2)ใ€[2,4)ใ€[4,8)ใ€[8,10]ๅ…ง็š„ๆ•ธ้‡๏ผŒ้€™่กจ็คบๆŸฑๅญๅฏไปฅไธ็ญ‰ๅฏฌ)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #            str๏ผš'auto'ใ€'fd'ใ€'doane'ใ€'scott'ใ€'stone'ใ€'rice'ใ€'sturges'ใ€'sqrt'
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ density = ๆ˜ฏๅฆๅฐ‡y่ปธไธŠ็š„็ตฑ่จˆๆ•ธ้‡ๅˆ‡ๆ›ๆˆๆฉŸ็އๅฏ†ๅบฆ๐Ÿ”…False
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ weights = ๆฌŠ้‡(้ ˆ็ตฆๅฎšๅ’Œx่ณ‡ๆ–™้™ฃๅˆ—ไธ€ๆจฃ้•ทๅบฆ็š„้™ฃๅˆ—๏ผŒ้€™่ฃกๆฌŠ้‡็š„ๆฆ‚ๅฟตๅฏไปฅ็†่งฃ็‚บ1ๅ€‹็•ถnๅ€‹ๆ•ธ็š„ๆฆ‚ๅฟต)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ cumulative = ็ดฏ็ฉ๐Ÿ”…False
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ bottom = ไปฅy(ๆ•ธ้‡)=n็‚บๅบ•้ƒจ๐Ÿ”…0
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ histtype = x่ณ‡ๆ–™็‚บ2D้™ฃๅˆ—ๆ™‚๏ผš'bar'(ๆฏๅˆ—่ณ‡ๆ–™็š„ๆŸฑๅญไธฆๆŽ’)ใ€'barstacked'(ๆฏๅˆ—่ณ‡ๆ–™็š„ๆŸฑๅญๅ †็–Š)ใ€'step'(ๆฏๅˆ—่ณ‡ๆ–™็š„้€ๆ˜ŽๆŸฑๅญ้‡็–Š)ใ€'stepfilled'(ๆฏๅˆ—่ณ‡ๆ–™็š„ๅกซๆปฟๆŸฑๅญ้‡็–Š)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ align = ๅฐ้ฝŠ๏ผš'left'ใ€๐Ÿ”…'mid'ใ€'right'
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ orientation = ๅž‚็›ดๆˆ–ๆฐดๅนณ๐Ÿ”…'vertical'ใ€'horizontal'
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ rwidth = ็›ธๅฐๅฏฌๅบฆ
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ log = ๅฐๆ•ธๅฐบๅบฆ๐Ÿ”…False
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ color = ็‚บๆฏๅˆ—่ณ‡ๆ–™็š„ๆŸฑๅญๆŒ‡ๅฎš้ก่‰ฒ(่‰ฒ็ขผ๏ผš#xxxxxx / ้ก่‰ฒ๏ผšrใ€gใ€bใ€mใ€cใ€y ... / RGB tuple๏ผš(0,0,0)~(1,1,1) / RGBA tuple๏ผš(0,0,0,0)~(1,1,1,1) )
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ label = ่ณ‡ๆ–™่ชชๆ˜Žๆจ™็ฑค๏ผŒๅฆ‚ๆžœๆœ‰ๅคš็ญ†ๆ•ธๆ“š่ณ‡ๆ–™๏ผŒไฝฟ็”จlist
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ stacked = ๅผทๅˆถๅ †็–Š๐Ÿ”…False
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ lw = ๅฏฌๅบฆ
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ ec = ้‚Šๆก†้ก่‰ฒ
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ fc = ๆŸฑๅญ้ก่‰ฒ
        
      • ax.boxplot()

        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹#ๆ–นๆณ• boxplot() ๐Ÿ›‘็›’็‹€ๅœ–
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    # ๅ››ๅˆ†ไฝ่ท๏ผšIQR = Q3-Q1
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    # ไธญไฝๆ•ธ๏ผšQ2
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    # ้ฌš็‹€็ทš๏ผšwhisker
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    # ้›ข็พคๅ€ผ๏ผšoutlier(่ˆ‡Q1ๆˆ–Q3ๅทฎ่ท่ถ…้Ž1.5ร—IQR็š„ๆ•ธๅ€ผ)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    # ้ฉๅบฆ้›ข็พคๅ€ผ๏ผšไฝๆ–ผ็ฏ„ๅœๅค–1.5ร—IQR~3ร—IQR็ฏ„ๅœ็š„ๆ•ธๅ€ผ
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    # ๆฅต็ซฏ้›ข็พคๅ€ผ๏ผšไฝๆ–ผ็ฏ„ๅœๅค–3ร—IQRไปฅไธŠ็š„ๆ•ธๅ€ผ
        
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    # ไธ€่ˆฌ็š„็›’็‹€ๅœ–๏ผš
        
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #   min             Q1  median  Q3              max
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #                   |-----:-----|
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #    |--------------|     :     |----------------|
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #                   |-----:-----|
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #                   <----------->
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #                        IQR
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #    <-------------><----><-----><--------------->
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #          25%        25%   25%         25%
        
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    # ๅฆ‚ๆžœๆ‚จๆฒ’ๆœ‰ๅ•Ÿ็”จ้›ข็พคๅ€ผ๏ผŒๅ‰‡้ฌš็‹€็ทšๆœƒๅปถไผธ่‡ณๆจ™็นชๅœ–ไธญ็š„ๆœ€ๅคงๅ€ผๅ’Œๆœ€ๅฐๅ€ผใ€‚
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    # ๅฆ‚ๆžœๆ‚จๅ•Ÿ็”จ้›ข็พคๅ€ผ๏ผŒๅ‰‡้ฌš็‹€็ทš่กจ็คบ่ถ…ๅ‡บๅ…งๅ››ๅˆ†ไฝ่ทไฝ†่ท้›ขๅค ่ฟ‘่€Œไธๆœƒ่ขซ่ฆ–็‚บ้›ข็พคๅ€ผ็š„ๅ€ผ็ฏ„ๅœใ€‚
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    # ๅฆ‚ๆžœๆœ‰ๅคง้‡็š„้›ข็พคๅ€ผ๏ผŒๅ‰‡ไปฅ้•ทๆข่กจ็คบ้›ข็พคๅ€ผ็š„็ฏ„ๅœใ€‚
        
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    # ้–‹ๅ•Ÿ้›ข็พคๅ€ผ็š„็›’็‹€ๅœ–๏ผš
        
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #      >Q1-1.5IQR   Q1  median  Q3   <Q3+1.5IQR
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #                   |-----:-----|
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #    o     |--------|     :     |--------|    o  o
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #                   |-----:-----|
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    # outlier           <----------->           outliers
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #                        IQR
        
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ ๆ•ธๆ“š้™ฃๅˆ—(ๆŒ‰ๅˆ—ไฝœ็›’็‹€ๅœ–)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ notch = ๆ˜ฏๅฆ่ผธๅ‡บ็‚บๅ‡นๆงฝ็›’็‹€ๅœ–๐Ÿ”…False(https://blog.csdn.net/williamlon/article/details/105284119)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ sym = ้›ข็พค้ปž็š„ๅฝข็‹€๏ผš๐Ÿ”…oใ€.ใ€,ใ€v ...
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ vert = ๆ˜ฏๅฆๅž‚็›ด๐Ÿ”…True
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ whis = n๏ผš่ถ…้Žnร—IQR็š„ๆ•ธๅ€ผ็‚บ้›ข็พคๅ€ผ๐Ÿ”…1.5 / (m,M)๏ผš้žไป‹ๆ–ผ็ฌฌm~M็™พๅˆ†ไฝ็š„ๆ•ธๆ“š็š†่ขซๆญธ็‚บ้›ข็พค้ปž -> ๆœ€ๅฐ(25,75) ๆœ€ๅคง(0,100)
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ widths = ็›’ๅญๅฏฌๅบฆ๐Ÿ”…0.5
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ label = ่ณ‡ๆ–™่ชชๆ˜Žๆจ™็ฑค๏ผŒๅฆ‚ๆžœๆœ‰ๅคš็ญ†ๆ•ธๆ“š่ณ‡ๆ–™๏ผŒไฝฟ็”จlist
        โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #ๅƒๆ•ธ showmeans = ๅนณๅ‡ๆ•ธไฝ็ฝฎ๐Ÿ”…True
        
    • ax (3D)

      โ€‹โ€‹โ€‹โ€‹from mpl_toolkits.mplot3d import Axes3D
      โ€‹โ€‹โ€‹โ€‹ax3D: Axes3D
      
  • ๆจก็ต„ style

    • ๅฑฌๆ€ง available

      โ€‹โ€‹โ€‹โ€‹print(style.available)
      โ€‹โ€‹โ€‹โ€‹# ๆ‰€ๆœ‰ๅฏ็”จ้ขจๆ ผ
      
      โ€‹โ€‹โ€‹โ€‹# ['Solarize_Light2', '_classic_test_patch', '_mpl-gallery', '_mpl-gallery-nogrid', 'bmh',
      โ€‹โ€‹โ€‹โ€‹# 'classic', 'dark_background', 'fast', 'fivethirtyeight', 'ggplot', 'grayscale', 'seaborn-v0_8',
      โ€‹โ€‹โ€‹โ€‹# 'seaborn-v0_8-bright', 'seaborn-v0_8-colorblind', 'seaborn-v0_8-dark', 'seaborn-v0_8-dark-palette',
      โ€‹โ€‹โ€‹โ€‹# 'seaborn-v0_8-darkgrid', 'seaborn-v0_8-deep', 'seaborn-v0_8-muted', 'seaborn-v0_8-notebook',
      โ€‹โ€‹โ€‹โ€‹# 'seaborn-v0_8-paper', 'seaborn-v0_8-pastel', 'seaborn-v0_8-poster', 'seaborn-v0_8-talk',
      โ€‹โ€‹โ€‹โ€‹# 'seaborn-v0_8-ticks', 'seaborn-v0_8-white', ๐Ÿ‘'seaborn-v0_8-whitegrid', 'tableau-colorblind10']
      
    • ๅ‡ฝๅผ use

      โ€‹โ€‹โ€‹โ€‹# ไฝฟ็”จ้ขจๆ ผ
      โ€‹โ€‹โ€‹โ€‹style.use('seaborn-v0_8-whitegrid')
      
  • ๆจก็ต„ animation

    • ้กžๅˆฅ FuncAnimation

      ๐Ÿšจ CAUTION
      ani.save ๆ˜ฏๆŒ‰็…งไฝ ็ตฆๅฎš็š„ frames ๅŽปๆฑบๅฎš่ฆ็”Ÿๆˆๅคšๅฐ‘ๅน€๏ผŒๅณไพฟๆœ‰่จญๅฎš repeat ไนŸๆฒ’็”จ
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹from collections.abc import Iterable
      
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹import matplotlib.pyplot as plt
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹import numpy as np
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹from matplotlib.animation import FuncAnimation
      
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# ๅ‰ตๅปบไธ€ๅ€‹็•ซๅธƒๅ’Œไธ€ๅ€‹ๅญๅœ–
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹fig: plt.Figure = plt.figure(figsize=(8, 8))
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹ax: plt.Axes = fig.add_subplot(1, 1, 1)
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹xdata: list[np.float64] = []
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹ydata: list[np.float64] = []
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹artists = ax.plot(xdata, ydata, animated=True)  # ๅชๆœ‰ไธ€ๅ€‹ Artist (line,)
      
      
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# ๅˆๅง‹่จญ็ฝฎ
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹def init() -> Iterable[plt.Line2D]:  # ๅ›žๅ‚ณ Iterable[Artist]
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    ax.set_xlim(0, 2 * np.pi)
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    ax.set_ylim(-1.5, 1.5)
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    return artists
      
      
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# ๆ›ดๆ–ฐๅ‡ฝๆ•ธ
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹def update(frame: np.float64) -> Iterable[plt.Line2D]:  # ๅ›žๅ‚ณ Iterable[Artist]
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    xdata.append(frame)
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    ydata.append(np.sin(frame))
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    artists[0].set_data(xdata, ydata)  # ็ตฆ Artist ่จญๅฎšๆ–ฐ่ณ‡ๆ–™
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    return artists
      
      
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# ๅ‰ตๅปบๅ‹•็•ซ
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹ani: FuncAnimation = FuncAnimation(
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    fig,
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    func=update,
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    frames=np.linspace(0, 2 * np.pi, 128),
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    init_func=init,
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    interval=50,
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    blit=True,
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    repeat=False,
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹)
      
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹plt.show()
      
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# ๆญค็ฏ„ไพ‹ๅƒ…ๆ›ดๆ–ฐไธ€ๅ€‹ Artist
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# ่‹ฅไฝ ๆƒณๆ›ดๆ–ฐๅคšๅ€‹ Artists (ๆฏ”ๅฆ‚่ชชๆถ‰ๅŠๅคšๅ€‹ๅœ–่กจ)๏ผŒไนŸๆ˜ฏๅŒๆจฃ็š„้“็†
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# ๅช่ฆๅœจ update ๅ‡ฝๆ•ธ็ตฆๅคšๅ€‹ Artist ่จญๅฎšๆ–ฐ่ณ‡ๆ–™ๅพŒ๏ผŒไธ€ไฝตๅ›žๅ‚ณๅ‡บไพ†ๅณๅฏ
      
      
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# FuncAnimation
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    # (
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #   #ๅƒๆ•ธ fig
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #      + ็•ซๅธƒ
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #           
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #   #ๅƒๆ•ธ func
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #      + ๆฏๅ€‹ๅน€้ƒฝๆœƒ่ชฟ็”จ็š„ๅ‡ฝๆ•ธ
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #      + def func(frame, *fargs) -> Iterable[Artist]
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #         + frame: ็ฌฌไธ€ๅƒๆ•ธๅ›บๅฎš๏ผŒๆ˜ฏ่ขซๅ‚ณๅ…ฅ็š„ไธ€ๅน€็š„ๆ•ธๆ“š
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #         + *fargs: ๅ…ถไป–้šจๆ„
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #      + ๅฏไฝฟ็”จ partial ๆŸฏ้‡ŒๅŒ–๏ผŒ้ ๅ…ˆๅ›บๅฎšๅ…ถไป–ๅƒๆ•ธ
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #      + FuncAnimation(fig, partial(func, a='foo', b='bar'))
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #   #ๅƒๆ•ธ frames
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #      + ๅ‚ณๅ…ฅ list[frame]
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #         + ๆ‰€ๆœ‰ๅน€็š„ๆ•ธๆ“š (่€Œ frame ๆ˜ฏไธ€ๅน€็š„ๆ•ธๆ“š)
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #      + ๅ‚ณๅ…ฅ int
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #         + ็›ธ็•ถๆ–ผ range(frames)
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #   #ๅƒๆ•ธ init_func
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #      + ๅœจ็ฌฌไธ€ๅน€้–‹ๅง‹ๅ‰่ชฟ็”จ็š„ๅ‡ฝๆ•ธ
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #      + def init_func(frame, *fargs) -> Iterable[Artist]
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #   #ๅƒๆ•ธ save_count
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #      + ๅฆ‚ๆžœ frames ๅ‚ณๅ…ฅๆฒ’ๆœ‰้•ทๅบฆ็š„่ฟญไปฃๅ™จๆˆ–็”Ÿๆˆๅ™จ๏ผŒ้‚ฃ้€™ๅฐฑๆ˜ฏๅฎƒ่ƒฝ็”ข็”Ÿๅคšๅฐ‘ๅน€็š„้™ๅˆถ
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #   #kwๅƒๆ•ธ interval
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #      + ๅน€้–“ๅปถ้ฒๆ™‚้–“
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    # 
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #   #kwๅƒๆ•ธ repeat
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #      + ๆ‰€ๆœ‰ๅน€ๅฎŒๆˆๆ™‚๏ผŒๆ˜ฏๅฆ่ฆ้‡ๆ’ญ
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #   #kwๅƒๆ•ธ repeat_interval
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #      + ้‡ๆ’ญ้–“ๅปถ้ฒๆ™‚้–“
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #   #kwๅƒๆ•ธ blit
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #      + ็ฐกไป‹๏ผš
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #      + ไธ€็จฎๅ„ชๅŒ–็นช่ฃฝ็š„ๆŠ€่ก“ใ€‚
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #      + ็•ถไฝ ้œ€่ฆๅœจๅ‹•็•ซไธญๆ›ดๆ–ฐ้ƒจๅˆ†็•ซ้ขๆ™‚๏ผŒ้€šๅธธๆœƒ้‡ๆ–ฐ็นช่ฃฝๆ•ดๅ€‹็•ซๅธƒ๏ผŒ้€™ๆจฃๆœƒ่€—่ฒปๅพˆๅคš่ณ‡ๆบ๏ผŒ็‰นๅˆฅๆ˜ฏๅœจ้œ€่ฆ้ซ˜้ ป็އๆ›ดๆ–ฐ็š„ๅ‹•็•ซไธญใ€‚
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #      + ๆญคๆŠ€่ก“็š„็›ฎ็š„ๆ˜ฏๅƒ…้‡ๆ–ฐ็นช่ฃฝ้œ€่ฆๆ›ดๆ”น็š„้ƒจๅˆ†๏ผŒ่€Œไธๆ˜ฏๆ•ดๅ€‹็•ซๅธƒ๏ผŒๅพž่€Œๆ้ซ˜ไบ†็นช่ฃฝๆ•ˆ็އใ€‚
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #      + โš ๏ธ ่จป๏ผš็›กๅฏ่ƒฝ่ฆ่จญๅฎš็‚บ True (้™ค้žไฝฟ็”จๅˆฐ Figure Artists)ใ€‚
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #      + โš ๏ธ ่จป๏ผšfunc / init_func ้ ˆๅ›žๅ‚ณ่ขซไฟฎๆ”น็š„ Iterable[Artist] ๆ‰ๆœ‰่พฆๆณ•ไฝฟ็”จ blitใ€‚
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #   #kwๅƒๆ•ธ cache_frame_data
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    #      - ๆ˜ฏๅฆๅฟซๅ–ๅน€ๆ•ธๆ“šใ€‚็•ถๆฏไธ€ๅน€้ƒฝๅŒ…ๅซๅพˆๅคง็š„็‰ฉไปถๆ™‚๏ผŒ็ฆ็”จๅฟซๅ–ๅฏ่ƒฝๆ˜ฏๆœ‰็”จ็š„ใ€‚
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    # ):
      
    • ๅญ˜ๆˆ gif

      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹ani.save("C:\\Users\\user\\Desktop\\animation.gif", writer="pillow", fps=30)
      
    • ๅญ˜ๆˆ mp4

      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# โš ๏ธ ้œ€ ffmpeg
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹plt.rcParams["animation.ffmpeg_path"] = "C:\\Users\\user\\Desktop\\ffmpeg\\bin\\ffmpeg.exe"
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹FFwriter = animation.FFMpegWriter(fps=10)
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹ani.save("C:\\Users\\user\\Desktop\\simulation.mp4", writer=FFwriter)
      
    • ่ฆ–็ช—

      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹plt.show()
      
  • ่—่ก“ๅฎถ Artist

    ๆ•ธๆ“šๅž‹็š„่—่ก“ๅฎถไฝฟ็”จ set_data ๆ›ดๆ–ฐ

    • ็ฐกไป‹

      ๅœจ Matplotlib ไธญ๏ผŒ
      ่—่ก“ๅฎถ (Artist) ๆ˜ฏๆŒ‡ไธ€ๅ€‹็”ฑๅœ–ๅฝขๅ…ƒ็ด  (ไพ‹ๅฆ‚็ทšๆขใ€้ปžใ€ๆ–‡ๆœฌ็ญ‰) ๆง‹ๆˆ็š„็‰ฉไปถใ€‚
      ไฝ ๅฏไปฅๅฐ‡ไธๅŒ็š„่—่ก“ๅฎถๆทปๅŠ ๅˆฐๅœ–ๅฝขไธญ๏ผŒ้€™ไบ›่—่ก“ๅฎถๅ…ฑๅŒๆง‹ๆˆไบ†ๅœ–ๅฝข็š„ๅ„ๅ€‹ๅ…ƒ็ด ใ€‚
      ๅœจๅ‹•็•ซไธญ๏ผŒFuncAnimation ๅ‡ฝๆ•ธๆœŸๆœ›็š„่ฟ”ๅ›žๅ€ผๅฐฑๆ˜ฏไธ€ๅ€‹ Iterable[Artist]
      ๅณๅŒ…ๅซไบ†ๅœจๆฏไธ€ๅน€ไธญ้œ€่ฆ่ขซๆ›ดๆ–ฐ็š„ๆ‰€ๆœ‰ๅœ–ๅฝขๅ…ƒ็ด ็š„ๅฏ่ฟญไปฃ็‰ฉไปถใ€‚
      ้€™ไบ›่ขซๆ›ดๆ–ฐ็š„ๅœ–ๅฝขๅ…ƒ็ด ๅฐ‡ๅœจๆฏไธ€ๅน€็š„ๅ‹•็•ซไธญ่ขซ้‡ๆ–ฐ็นช่ฃฝ๏ผŒไปฅๅฏฆ็พๅ‹•็•ซ็š„ๆ•ˆๆžœใ€‚

    • ่—่ก“ๅฎถ

      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹from matplotlib.lines import Line2D
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹from matplotlib.patches import Rectangle
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹from matplotlib.patches import Wedge
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹from matplotlib.text import Text
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹from matplotlib.collections import PathCollection
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹from matplotlib.collections import PolyCollection
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹from matplotlib.image import AxesImage
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹from mpl_toolkits.mplot3d.art3d import Line3D
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹from mpl_toolkits.mplot3d.art3d import Poly3DCollection
      
    • ๅฎนๅ™จ

      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹from matplotlib.container import BarContainer
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹from matplotlib.contour import QuadContourSet
      
    • 2D

      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# plot
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    lines = ax.plot()
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    lines: list[Line2D] # ๅคšๅ€‹่—่ก“ๅฎถ (ไธ€่ˆฌ่€Œ่จ€ๅช็”ข็”Ÿไธ€ๅ€‹่—่ก“ๅฎถ๏ผŒ้€™่ฃกๅชๆ˜ฏ็”จ list ๅŒ…ไฝ)
      
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# scatter
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    pointset = ax.scatter()
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    pointset: PathCollection # ่—่ก“ๅฎถ
      
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# bar
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    bars = ax.bar()
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    bars = ax.barh()
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    bars: BarContainer[Rectangle] # ๅคšๅ€‹่—่ก“ๅฎถ
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    bar: Rectangle # ่—่ก“ๅฎถ
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# pie
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    wedges, texts, autotexts = ax.pie()
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    wedges: list[Wedge]   # ๅคšๅ€‹่—่ก“ๅฎถ
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    texts: list[Text]     # ๅคšๅ€‹่—่ก“ๅฎถ
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    autotexts: list[Text] # ๅคšๅ€‹่—่ก“ๅฎถ
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# contour
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    contour = ax.contour()
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    contour = ax.contourf()
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    contour: QuadContourSet # ...
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# step
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    lines = ax.step()
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    lines: list[Line2D] # ๅคšๅ€‹่—่ก“ๅฎถ
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# stackplot
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    stacks = ax.stackplot()
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    stacks: list[PolyCollection] # ๅคšๅ€‹่—่ก“ๅฎถ
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# imshow
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    image = ax.imshow()
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    image: AxesImage
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# hist
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    heights, bins, patches = ax.hist()
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    heights, bins = np.histogram() # ๆŠŠ data ไธŸ้€ฒๅŽป๏ผŒๅนซไฝ ็ฎ—ๅฅฝ heights ๅ’Œ bins
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    heights: list[float] # ็ด€้Œ„ๆฏๅ€‹ bar ็š„้ซ˜ๅบฆ
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    bins: list[float] # ๅˆ‡ๅˆ†้ปž (bar ๆœƒ็”Ÿ้•ทๆ–ผๅˆ‡ๅˆ†้ปžไน‹้–“๏ผŒ้€™ๅฏๅœจไธ€้–‹ๅง‹ ax.hist ็ตฆๅฎš)
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    patches: BarContainer[Rectangle] # ๅคšๅ€‹่—่ก“ๅฎถ (bars)
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    patch: Rectangle # ่—่ก“ๅฎถ (bar)
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# boxplot
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    box = ax.boxplot()
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    box: dict[str, list[Line2D]]
      
    • 3D

      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# 3D ๆŠ˜็ทšๅœ–
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# plot
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    lines = ax.plot()
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    lines: list[Line3D]
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    # x, y ๆ•ธๆ“šๆ”พ set_data
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    line.set_data()
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    # z ๆ•ธๆ“šๆ”พ set_3d_properties
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    line.set_3d_properties()
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# 3D ๆ›ฒ้ขๅœ–
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹# plot_surface
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    surface = ax.plot_surface()
      โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹    surface: Poly3DCollection