Python可視化工具M(jìn)atplotlib的20種圖表用法
總結(jié)了20種最實(shí)用的Python圖表,做數(shù)據(jù)可視化不用再抓狂了
今天咱不聊雞湯、不講情懷,直接開整!花姐帶你沉浸式體驗(yàn) Python 可視化神器——Matplotlib的20種最常見圖表玩法。
不管你是數(shù)據(jù)分析,機(jī)器學(xué)習(xí),還是做周報(bào)、寫PPT,只要掌握了這些圖形,絕對(duì)是質(zhì)的飛躍!
接下來,準(zhǔn)備好你的 IDE,我們一個(gè)個(gè)上手敲起來!
注:要想Matplotlib支持中文!代碼跑之前記得加上這一行解決中文亂碼問題:
plt.rcParams['font.family'] = 'SimHei' # 黑體支持中文
如何你還沒有安裝matplotlib請(qǐng)打開你的終端(Terminal)或者命令行(cmd),直接敲:
pip install matplotlib
回車,喝口水,等一會(huì)兒,它自己就裝好了。
1. 折線圖(Line Chart)
常用于趨勢(shì)變化,比如氣溫、股價(jià)、KPI變化啥的。
import matplotlib.pyplot as plt plt.rcParams['font.family'] = 'SimHei' # 黑體支持中文 x = [1, 2, 3, 4, 5] y = [3, 5, 7, 6, 9] plt.plot(x, y, marker='o') plt.title('每日訪問量變化') plt.xlabel('日期') plt.ylabel('訪問量') plt.grid(True) plt.show()
2. 條形圖(Bar Chart)
橫著比數(shù)據(jù),適合分類比較。
import matplotlib.pyplot as plt plt.rcParams['font.family'] = 'SimHei' # 黑體支持中文 categories = ['小紅', '小明', '小剛', '小美'] scores = [90, 80, 75, 88] plt.bar(categories, scores, color='skyblue') plt.title('四人考試成績(jī)對(duì)比') plt.show()
3. 直方圖(Histogram)
適合看數(shù)據(jù)分布,比如工資分布、身高、體重這些。
import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.family'] = 'SimHei' # 黑體支持中文 data = np.random.normal(170, 10, 200) plt.hist(data, bins=20, color='orange', edgecolor='black') plt.title('身高分布圖') plt.xlabel('身高') plt.ylabel('人數(shù)') plt.show()
4. 散點(diǎn)圖(Scatter Plot)
兩個(gè)變量之間的關(guān)系,看是否相關(guān)。
import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.family'] = 'SimHei' # 黑體支持中文 x = np.random.rand(100) y = x + np.random.normal(0, 0.1, 100) plt.scatter(x, y) plt.title('學(xué)習(xí)時(shí)間 vs 成績(jī)') plt.xlabel('學(xué)習(xí)時(shí)間') plt.ylabel('成績(jī)') plt.show()
5. 餅圖(Pie Chart)
占比圖!讓老板看誰吃的預(yù)算多
import matplotlib.pyplot as plt plt.rcParams['font.family'] = 'SimHei' # 黑體支持中文 labels = ['廣告', '運(yùn)營', '人力', '技術(shù)'] sizes = [30, 20, 10, 40] plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=140) plt.title('部門預(yù)算占比') plt.axis('equal') plt.show()
6. 面積圖(Area Chart)
比折線圖多了一點(diǎn)“填充感”,也更直觀。
import matplotlib.pyplot as plt plt.rcParams['font.family'] = 'SimHei' # 黑體支持中文 x = range(1, 6) y = [1, 3, 4, 8, 12] plt.fill_between(x, y, color="lightgreen") plt.plot(x, y, color="green") plt.title('用戶增長趨勢(shì)') plt.show()
7. 箱線圖(Box Plot)
統(tǒng)計(jì)分析必備,幫你看離群值、上下四分位這些。
import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.family'] = 'SimHei' # 黑體支持中文 data = [np.random.normal(50, std, 100) for std in (5, 10, 20)] plt.boxplot(data, patch_artist=True) plt.title('三組數(shù)據(jù)分布對(duì)比') plt.show()
8. 熱力圖(Heatmap)
用顏色來表現(xiàn)數(shù)值大小,強(qiáng)烈推薦結(jié)合seaborn
!
import matplotlib.pyplot as plt import numpy as np import seaborn as sns plt.rcParams['font.family'] = 'SimHei' # 黑體支持中文 data = np.random.rand(6, 6) sns.heatmap(data, annot=True) plt.title('熱力圖示例') plt.show()
9. 雷達(dá)圖(Radar Chart)
多維指標(biāo)一圖展示,簡(jiǎn)歷必備,別說我沒告訴你
import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.family'] = 'SimHei' # 黑體支持中文 labels = ['溝通', '編碼', '學(xué)習(xí)', '抗壓', '責(zé)任心'] stats = [8, 9, 7, 6, 8] angles = np.linspace(0, 2*np.pi, len(labels), endpoint=False).tolist() stats += stats[:1] angles += angles[:1] fig, ax = plt.subplots(subplot_kw={'polar': True}) ax.plot(angles, stats, 'o-', linewidth=2) ax.fill(angles, stats, alpha=0.25) ax.set_thetagrids(np.degrees(angles[:-1]), labels) plt.title('我的技能雷達(dá)圖') plt.show()
10. 極坐標(biāo)圖(Polar Chart)
散點(diǎn)+極坐標(biāo),視覺沖擊感超強(qiáng)。
import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.family'] = 'SimHei' # 黑體支持中文 r = np.linspace(0, 1, 100) theta = 2 * np.pi * r plt.polar(theta, r) plt.title('極坐標(biāo)示例') plt.show()
11. 雙軸圖(Dual Axis)
兩個(gè)Y軸,兩個(gè)變量共用一個(gè)X軸,超實(shí)用。
import matplotlib.pyplot as plt plt.rcParams['font.family'] = 'SimHei' # 黑體支持中文 # 數(shù)據(jù) months = ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'] sales = [120, 150, 200, 180, 220, 260, 240, 300, 320, 310, 400, 500] new_users = [3500, 3800, 4200, 4000, 5000, 5200, 4800, 6000, 6300, 6200, 7500, 8000] fig, ax1 = plt.subplots(figsize=(10,6)) # 左軸:銷售額 color = 'tab:blue' ax1.set_xlabel('月份') ax1.set_ylabel('銷售額(萬元)', color=color) ax1.plot(months, sales, color=color, marker='o', label='銷售額') ax1.tick_params(axis='y', labelcolor=color) # 右軸:新注冊(cè)用戶 ax2 = ax1.twinx() color = 'tab:red' ax2.set_ylabel('新注冊(cè)用戶(人)', color=color) ax2.plot(months, new_users, color=color, marker='s', linestyle='--', label='新注冊(cè)用戶') ax2.tick_params(axis='y', labelcolor=color) plt.title('某電商平臺(tái)2024年月度銷售額與新注冊(cè)用戶') ax1.grid(True) plt.show()
12. 折線圖+散點(diǎn)圖混搭(Line + Scatter)
增強(qiáng)折線圖表達(dá)力的小技巧!
import matplotlib.pyplot as plt plt.rcParams['font.family'] = 'SimHei' # 黑體支持中文 # 折線數(shù)據(jù) months = ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'] avg_price = [18500, 18700, 19000, 18800, 19200, 19400, 19500, 19800, 20000, 20200, 20500, 21000] # 散點(diǎn)數(shù)據(jù) special_months = ['3月', '6月', '8月', '11月'] special_price = [21000, 22000, 23000, 25000] fig, ax = plt.subplots(figsize=(10,6)) # 畫折線圖 ax.plot(months, avg_price, color='blue', marker='o', label='平均房?jī)r(jià)(元/㎡)') # 畫散點(diǎn)圖 ax.scatter(special_months, special_price, color='red', s=100, marker='*', label='特殊成交(元/㎡)') plt.title('2024年某小區(qū)月均房?jī)r(jià)及特殊成交記錄') plt.xlabel('月份') plt.ylabel('價(jià)格(元/㎡)') plt.legend() plt.grid(True) plt.show()
13. 階梯圖(Step Plot)
適合描述“突變”的情況,比如電費(fèi)、分段計(jì)價(jià)那種。
import matplotlib.pyplot as plt from datetime import datetime import matplotlib.dates as mdates plt.rcParams['font.family'] = 'SimHei' # 黑體支持中文 # 數(shù)據(jù) dates = ['2023-10-01', '2023-10-02', '2023-10-03', '2023-10-04', '2023-10-05', '2023-10-06', '2023-10-07'] temperatures = [22, 23, 20, 19, 18, 20, 21] # 轉(zhuǎn)換日期格式 dates = [datetime.strptime(d, '%Y-%m-%d') for d in dates] # 創(chuàng)建圖表 plt.figure(figsize=(10, 6)) # 繪制階梯圖(post樣式的階梯變化) plt.step( dates, temperatures, where='post', # 階梯在數(shù)據(jù)點(diǎn)后變化 color='#E64A45', # 中國紅配色 linewidth=2.5, marker='o', # 添加數(shù)據(jù)點(diǎn)標(biāo)記 markersize=8, markerfacecolor='white', markeredgewidth=2, label='每日最高氣溫' ) # 添加標(biāo)題和標(biāo)簽 plt.title('北京市國慶期間氣溫變化(2024年10月1-7日)', fontsize=14, pad=20) plt.xlabel('日期', fontsize=12) plt.ylabel('溫度 (°C)', fontsize=12) # 配置坐標(biāo)軸 plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%d')) plt.gca().xaxis.set_major_locator(mdates.DayLocator()) plt.xticks(rotation=30) plt.ylim(15, 25) # 添加輔助元素 plt.grid(axis='y', linestyle='--', alpha=0.7) plt.tight_layout() plt.legend(loc='upper left', frameon=False) plt.show()
14. 餅圖 + 中心洞(環(huán)形圖)
視覺更舒服,直接用wedgeprops
搞定。
import matplotlib.pyplot as plt plt.rcParams['font.family'] = 'SimHei' # 黑體支持中文 # 數(shù)據(jù) categories = [ '煤炭', '石油', '天然氣', '可再生能源\n(水電/風(fēng)電/光伏)' ] percentages = [56.2, 18.5, 9.4, 15.9] colors = [ '#6D8698', # 灰藍(lán)(煤炭) '#BE7352', # 棕褐(石油) '#8FA6A2', # 青灰(天然氣) '#8FB3B0' # 淺綠(可再生能源) ] # 創(chuàng)建帶中心洞的環(huán)形圖 fig, ax = plt.subplots(figsize=(8, 8)) wedges, texts, autotexts = ax.pie( percentages, wedgeprops={ 'width': 0.5, # 環(huán)寬=半徑的50% 'edgecolor': 'white', # 白色分割線 'linewidth': 1.5 # 分割線粗細(xì) }, colors=colors, startangle=90, # 起始角度(12點(diǎn)方向) autopct='%1.1f%%', # 百分比格式 pctdistance=0.85 # 百分比標(biāo)簽位置(0.85倍半徑) ) # 設(shè)置百分比標(biāo)簽樣式 for autotext in autotexts: autotext.set_color('white') autotext.set_fontsize(10) autotext.set_weight('bold') # 添加中心標(biāo)題 ax.text( 0, 0, 'XX國能源結(jié)構(gòu)\n2024', ha='center', va='center', fontsize=16, fontweight='bold', color='#2F4F4F' ) # 添加圖例(帶透明度效果) legend = ax.legend( wedges, categories, title="能源類型", loc="center left", bbox_to_anchor=(1, 0, 0.5, 1), frameon=False, labelspacing=1.2 ) legend.get_title().set_fontweight('bold') # 設(shè)置長寬比保證正圓形 ax.axis('equal') plt.tight_layout() plt.show()
15. 誤差線圖(Error Bar)
實(shí)驗(yàn)、分析場(chǎng)景常用。
import matplotlib.pyplot as plt plt.rcParams['font.family'] = 'SimHei' # 黑體支持中文 # 數(shù)據(jù) (單位:萬輛) quarters = ['Q1', 'Q2', 'Q3', 'Q4'] avg_sales = [158.6, 173.2, 204.6, 227.4] # 季度平均銷量 std_dev = [8.2, 9.5, 11.3, 13.1] # 各季度銷量標(biāo)準(zhǔn)差 # 創(chuàng)建帶誤差線的散點(diǎn)圖 plt.figure(figsize=(10, 6)) # 主繪圖語句 main_line = plt.errorbar( x=quarters, y=avg_sales, yerr=std_dev, # 誤差線數(shù)據(jù) fmt='o-', # 點(diǎn)線組合 markersize=10, markerfacecolor='#2E86C1', markeredgecolor='white', elinewidth=2, # 誤差線粗細(xì) ecolor='#E74C3C', # 誤差線顏色 capsize=8, # 誤差線頂端橫杠長度 linewidth=2.5, label='平均銷量 ± 標(biāo)準(zhǔn)差' ) # 添加數(shù)據(jù)標(biāo)簽 for i, (v, s) in enumerate(zip(avg_sales, std_dev)): plt.text(i, v + 15, f'{v}±{s}', ha='center', fontsize=10, bbox=dict(facecolor='white', alpha=0.8)) # 可視化優(yōu)化 plt.title('2024年中國新能源汽車季度銷量誤差分析', fontsize=14, pad=20) plt.ylabel('銷量 (萬輛)', labelpad=12) plt.ylim(120, 260) plt.grid(axis='y', linestyle='--', alpha=0.6) # 添加圖例 leg = plt.legend(loc='upper left') leg.get_frame().set_linewidth(0.0) # 移除圖例邊框 plt.tight_layout() plt.show()
16. 等高線圖(Contour Plot)
展示函數(shù)值隨二維變量變化的趨勢(shì)。
import matplotlib.pyplot as plt from matplotlib import cm import numpy as np plt.rcParams['font.family'] = 'SimHei' # 黑體支持中文 plt.rcParams['axes.unicode_minus'] = False # 解決負(fù)數(shù)亂碼問題 # 生成地形數(shù)據(jù)(模擬青海湖周邊區(qū)域 20x20公里) x = np.linspace(-10, 10, 200) y = np.linspace(-8, 12, 200) X, Y = np.meshgrid(x, y) # 高程函數(shù)(包含湖盆與山脈特征) Z = 3200 + 50*Y - 40*X**2 + 30*np.sin(2*X) + 45*np.exp(-(X**2 + Y**2)/25) # 創(chuàng)建畫布 plt.figure(figsize=(12, 8)) # 繪制填充等高線 cs = plt.contourf(X, Y, Z, levels=np.linspace(3100, 3700, 13), cmap=cm.gist_earth, alpha=0.85) # 繪制等高線 c_lines = plt.contour(X, Y, Z, levels=np.linspace(3100, 3700, 13), colors='black', linewidths=0.6) # 添加標(biāo)簽 plt.clabel(c_lines, inline=True, fontsize=8, fmt='%d m') # 添加高程標(biāo)注 # 添加色標(biāo) cbar = plt.colorbar(cs) cbar.set_label('高程(米)', rotation=270, labelpad=20) # 設(shè)置地形圖元素 plt.title('青海湖周邊地形等高線模擬圖', pad=20, fontsize=14) plt.xlabel('東西向距離 (公里)') plt.ylabel('南北向距離 (公里)') plt.grid(linestyle=':', alpha=0.5) # 標(biāo)注特征區(qū)域 plt.text(-8, 10, '日月山脈', ha='left', va='center', fontsize=9, color='#8B0000') plt.annotate('青海湖水域', xy=(-1, 3), xytext=(-9, 5), arrowprops=dict(arrowstyle="->", color='navy'), fontsize=9, color='#00008B') plt.tight_layout() plt.show()
17. 3D 曲面圖(3D Surface)
你沒看錯(cuò),Matplotlib也能畫3D!
import matplotlib.pyplot as plt from matplotlib import cm import numpy as np plt.rcParams['font.family'] = 'SimHei' # 黑體支持中文 plt.rcParams['axes.unicode_minus'] = False # 解決負(fù)數(shù)亂碼問題 # 生成真實(shí)地形數(shù)據(jù)(模擬黃石公園44.5°N, 110.5°W區(qū)域) x = np.linspace(-5, 5, 150) y = np.linspace(-5, 5, 150) X, Y = np.meshgrid(x, y) # 高程函數(shù)(包含火山口與地?zé)釁^(qū)特征) Z = 2400 + 50*np.exp(-0.3*(X**2 + Y**2)) - 200*np.exp(-0.8*((X+1)**2 + (Y-0.5)**2)) Z += 30*np.sin(2*X) * np.cos(3*Y) # 創(chuàng)建3D畫布 fig = plt.figure(figsize=(14, 10)) ax = fig.add_subplot(111, projection='3d') # 繪制曲面 surf = ax.plot_surface(X, Y, Z, cmap=cm.terrain, # 地形專用色標(biāo) rstride=2, # 行采樣步長 cstride=2, # 列采樣步長 alpha=0.95, antialiased=True, linewidth=0.2, edgecolor='#333333') # 添加色標(biāo) cbar = fig.colorbar(surf, shrink=0.6, aspect=30) cbar.set_label('高程 (米)', rotation=270, labelpad=25) # 設(shè)置觀測(cè)角度 ax.view_init(elev=35, azim=300) # 35度俯角,300度方位角 # 添加標(biāo)注 ax.set_xlabel('東西向 (公里)', labelpad=12) ax.set_ylabel('南北向 (公里)', labelpad=12) ax.set_zlabel('高程', labelpad=12) ax.set_title('某國家公園地?zé)釁^(qū)3D地形模型', y=0.98, fontsize=14) # 添加地形特征標(biāo)注 ax.text(-4, -4, 2600, '▲ 火山口', color='#8B0000', fontsize=9) ax.text(1.5, 0.8, 2250, '地?zé)釃娙獏^(qū)', color='#2F4F4F', fontsize=9) # 優(yōu)化顯示效果 ax.xaxis.pane.fill = False ax.yaxis.pane.fill = False ax.zaxis.pane.fill = False ax.xaxis._axinfo["grid"].update({"linewidth":0.3, "color" : "#666666"}) ax.yaxis._axinfo["grid"].update({"linewidth":0.3, "color" : "#666666"}) ax.zaxis._axinfo["grid"].update({"linewidth":0.3, "color" : "#666666"}) plt.tight_layout() plt.show()
18. 氣泡圖(Bubble Plot)
其實(shí)是散點(diǎn)圖加強(qiáng)版,用大小表示變量大小。
import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.family'] = 'SimHei' # 黑體支持中文 plt.rcParams['axes.unicode_minus'] = False # 解決負(fù)數(shù)亂碼問題 # 各省份數(shù)據(jù)(GDP單位:萬億元,人口單位:千萬人) provinces = [ '廣東', '江蘇', '山東', '浙江', '河南', '四川', '湖北', '福建', '湖南', '安徽' ] gdp = [12.91, 12.29, 8.74, 7.77, 6.13, 5.67, 5.37, 5.31, 4.87, 4.50] population = [126.6, 85.1, 101.6, 65.4, 98.7, 83.7, 58.3, 41.8, 66.4, 61.3] per_capita_gdp = [10.2, 14.4, 8.6, 11.9, 6.2, 6.8, 9.2, 12.7, 7.3, 7.3] # 單位:萬元/人 # 創(chuàng)建畫布 plt.figure(figsize=(14, 8)) # 繪制氣泡圖 scatter = plt.scatter( x=gdp, y=population, s=np.array(per_capita_gdp)*400, # 氣泡大小縮放 c=np.arange(len(provinces)), # 顏色映射 cmap='tab20', alpha=0.8, edgecolors='white', linewidths=0.8 ) # 設(shè)置坐標(biāo)軸 plt.title('xxxx主要省份經(jīng)濟(jì)數(shù)據(jù)氣泡圖', fontsize=14, pad=20) plt.xlabel('GDP(萬億元)', labelpad=12) plt.ylabel('人口(千萬人)', labelpad=12) plt.grid(linestyle=':', alpha=0.6) # 設(shè)置坐標(biāo)范圍 plt.xlim(3, 14) plt.ylim(30, 130) plt.tight_layout() plt.show()
19. 漏斗圖(Funnel Chart)
展示“轉(zhuǎn)化率”的神器。
import matplotlib.pyplot as plt plt.rcParams['font.family'] = 'SimHei' # 黑體支持中文 plt.rcParams['axes.unicode_minus'] = False # 解決負(fù)數(shù)亂碼問題 labels = ['訪問', '注冊(cè)', '激活', '付費(fèi)'] values = [1000, 800, 400, 100] plt.barh(labels, values) plt.title('用戶轉(zhuǎn)化漏斗') plt.show()
20. 動(dòng)態(tài)圖(Animation)
別說靜態(tài)圖無聊,Matplotlib也能動(dòng)起來!
import matplotlib.pyplot as plt import numpy as np from matplotlib import animation plt.rcParams['font.family'] = 'SimHei' # 黑體支持中文 plt.rcParams['axes.unicode_minus'] = False # 解決負(fù)數(shù)亂碼問題 fig, ax = plt.subplots() x = np.linspace(0, 2*np.pi, 128) line, = ax.plot(x, np.sin(x)) def update(i): line.set_ydata(np.sin(x + i / 10.0)) return line, ani = animation.FuncAnimation(fig, update, frames=100, interval=50) plt.title('動(dòng)態(tài)正弦波') plt.show()
最后說一句
可視化不僅僅是“畫圖”,更是講故事的方式,是你用代碼向世界展示洞察力的舞臺(tái)。別只是盯著那些一眼看完的報(bào)表,有時(shí)候,一個(gè)圖勝過千言萬語。
以上就是Python可視化工具M(jìn)atplotlib的20種圖表用法的詳細(xì)內(nèi)容,更多關(guān)于Python可視化工具M(jìn)atplotlib用法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Django中URL視圖函數(shù)的一些高級(jí)概念介紹
這篇文章主要介紹了Django中URL視圖函數(shù)的一些高級(jí)概念,Django是Python重多人氣框架中最為著名的一個(gè),需要的朋友可以參考下2015-07-07python3.6 tkinter實(shí)現(xiàn)屏保小程序
這篇文章主要為大家詳細(xì)介紹了python3.6 tkinter實(shí)現(xiàn)屏保小程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07關(guān)于python的編碼與解碼decode()方法及zip()函數(shù)
這篇文章主要介紹了關(guān)于python的編碼與解碼decode()方法及zip()函數(shù),encode0?方法是字符串對(duì)象內(nèi)置的一個(gè)實(shí)現(xiàn)方法用于實(shí)現(xiàn)編碼操作,需要的朋友可以參考下2023-04-04pytest利用request?fixture實(shí)現(xiàn)個(gè)性化測(cè)試需求詳解
這篇文章主要為大家詳細(xì)介紹了pytest如何利用request?fixture實(shí)現(xiàn)個(gè)性化測(cè)試需求,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-09-09Python人工智能深度學(xué)習(xí)模型訓(xùn)練經(jīng)驗(yàn)總結(jié)
這篇文章主要為大家介紹了Python人工智能深度學(xué)習(xí)模型訓(xùn)練的經(jīng)驗(yàn)總結(jié)及建議,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11pytorch1.60 torch.nn在pycharm中無法自動(dòng)智能提示的解決
這篇文章主要介紹了pytorch1.60 torch.nn在pycharm中無法自動(dòng)智能提示的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02python實(shí)現(xiàn)統(tǒng)計(jì)代碼行數(shù)的小工具
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)統(tǒng)計(jì)代碼行數(shù)的小工具,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09