Python可視化Matplotlib折線圖plot用法詳解
折線圖是數(shù)據(jù)分析中非常常用的圖形。其中,折線圖主要是以折線的上升或下降來表示統(tǒng)計(jì)數(shù)量的增減變化的統(tǒng)計(jì)圖。用于分析自變量和因變量之間的趨勢關(guān)系,最適合用于顯示隨著時(shí)間而變化的連續(xù)數(shù)據(jù),同時(shí)還可以看出數(shù)量的差異,增長情況。
特點(diǎn):能夠顯示數(shù)據(jù)的變化趨勢,反映事物的變化情況。
Matplotlib 中繪制折線圖的函數(shù)為 plot() ,使用語法如下:
matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs)
常用參數(shù)及說明:
參數(shù) | 接收值 | 說明 | 默認(rèn)值 |
---|---|---|---|
x,y | array | 表示 x 軸與 y 軸對應(yīng)的數(shù)據(jù) | 無 |
color | string | 表示折線的顏色 | None |
marker | string | 表示折線上數(shù)據(jù)點(diǎn)處的類型 | None |
linestyle | string | 表示折線的類型 | - |
linewidth | 數(shù)值 | 線條粗細(xì):linewidth=1.=5.=0.3 | 1 |
alpha | 0~1之間的小數(shù) | 表示點(diǎn)的透明度 | None |
label | string | 數(shù)據(jù)圖例內(nèi)容:label=‘實(shí)際數(shù)據(jù)' | 1None |
1.完善原始折線圖 — 給圖形添加輔助功能
需求:畫出某城市11點(diǎn)到12點(diǎn)1小時(shí)內(nèi)每分鐘的溫度變化折線圖,溫度范圍在15度~25度
1.1 準(zhǔn)備數(shù)據(jù)并畫出初始折線圖
import matplotlib.pyplot as plt import random # 畫出溫度變化圖 # 0.準(zhǔn)備x, y坐標(biāo)的數(shù)據(jù) x = range(60) y_jiangsu = [random.uniform(15, 25) for i in x] # 1.創(chuàng)建畫布 plt.figure(figsize=(20, 8), dpi=80) # 2.繪制折線圖 plt.plot(x, y_jiangsu) # 3.顯示圖像 plt.show()
1.2 添加自定義x,y刻度
plt.xticks(x, **kwargs)
x:要顯示的刻度值
plt.yticks(y, **kwargs)
y:要顯示的刻度值
# 構(gòu)造x軸刻度標(biāo)簽 x_ticks_label = ["11點(diǎn){}分".format(i) for i in x] # 構(gòu)造y軸刻度 y_ticks = range(40) # 修改x,y軸坐標(biāo)的刻度顯示 plt.xticks(x[::5], x_ticks_label[::5]) plt.yticks(y_ticks[::5])
1.3 中文顯示問題解決
如果沒有解決過中文問題的話,繪制的圖像會出現(xiàn)中文無法顯示的問題。
解決方案:
在Python腳本中動態(tài)設(shè)置matplotlibrc,這樣也可以避免由于更改配置文件而造成的麻煩,具體代碼如下:
from pylab import mpl # 設(shè)置顯示中文字體 mpl.rcParams["font.sans-serif"] = ["SimHei"]
有時(shí)候,字體更改后,會導(dǎo)致坐標(biāo)軸中的部分字符無法正常顯示,例如無法顯示負(fù)號問題,此時(shí)需要更改axes.unicode_minus參數(shù):
# 設(shè)置正常顯示符號 mpl.rcParams["axes.unicode_minus"] = False
1.4 添加網(wǎng)格顯示
為了更加清楚地觀察圖形對應(yīng)的值
plt.grid(True, linestyle='--', alpha=0.5)
1.5 添加描述信息
添加x軸、y軸描述信息及標(biāo)題
通過fontsize參數(shù)可以修改圖像中字體的大小
plt.xlabel("時(shí)間") plt.ylabel("溫度") plt.title("江蘇中午11點(diǎn)0分到12點(diǎn)之間的溫度變化圖示", fontsize=20)
1.6 圖像保存
# 保存圖片到指定路徑 plt.savefig("test.png")
注意:plt.show()會釋放figure資源,如果在顯示圖像之后保存圖片將只能保存空圖片。
2. 在一個(gè)坐標(biāo)系中繪制多個(gè)圖像
2.1 多次plot
需求:再添加一個(gè)城市的溫度變化
收集到北京當(dāng)天溫度變化情況,溫度在1度到3度。怎么去添加另一個(gè)在同一坐標(biāo)系當(dāng)中的不同圖形,其實(shí)很簡單只需要再次plot即可,但是需要區(qū)分線條。
# 增加北京的溫度數(shù)據(jù) y_beijing = [random.uniform(1, 3) for i in x] # 繪制折線圖 plt.plot(x, y_jiangsu) # 使用多次plot可以畫多個(gè)折線 plt.plot(x, y_beijing, color='r', linestyle='--')
2.2 顯示圖例
注意:如果只在plt.plot()中設(shè)置label還不能最終顯示出圖例,還需要通過plt.legend()將圖例顯示出來。
# 繪制折線圖 plt.plot(x, y_jiangsu, label="江蘇") # 使用多次plot可以畫多個(gè)折線 plt.plot(x, y_beijing, color='r', linestyle='--', label="北京") # 顯示圖例 plt.legend(loc="best")
完整代碼:
# 0.準(zhǔn)備數(shù)據(jù) x = range(60) y_jiangsu = [random.uniform(15, 25) for i in x] y_beijing = [random.uniform(1,3) for i in x] # 1.創(chuàng)建畫布 plt.figure(figsize=(20, 8), dpi=100) # 2.繪制圖像 plt.plot(x, y_jiangsu, label="江蘇") plt.plot(x, y_beijing, color="r", linestyle="--", label="北京") # 2.1 添加x,y軸刻度 # 構(gòu)造x,y軸刻度標(biāo)簽 x_ticks_label = ["11點(diǎn){}分".format(i) for i in x] y_ticks = range(35) # 刻度顯示 plt.xticks(x[::5], x_ticks_label[::5]) plt.yticks(y_ticks[::5]) # 2.2 添加網(wǎng)格顯示 plt.grid(True, linestyle="--", alpha=0.5) # 2.3 添加描述信息 plt.xlabel("時(shí)間") plt.ylabel("溫度") plt.title("中午11點(diǎn)--12點(diǎn)某城市溫度變化圖", fontsize=20) # 2.4 圖像保存 plt.savefig("./test.png") # 2.5 添加圖例 plt.legend(loc="best") # 3.圖像顯示 plt.show()
2.3 折線圖的應(yīng)用場景
- 呈現(xiàn)公司產(chǎn)品(不同區(qū)域)每天活躍用戶數(shù)
- 呈現(xiàn)app每天下載數(shù)量
- 呈現(xiàn)產(chǎn)品新功能上線后,用戶點(diǎn)擊次數(shù)隨時(shí)間的變化
創(chuàng)作不易,白嫖不好,各位的支持和認(rèn)可,就是我創(chuàng)作的最大動力,我們下篇文章見!
Dragon少年 | 文
如果本篇博客有任何錯(cuò)誤,請批評指教,不勝感激 !
以上就是Python可視化Matplotlib折線圖plot用法詳解的詳細(xì)內(nèi)容,更多關(guān)于Python可視化Matplotlib的資料請關(guān)注本站其它相關(guān)文章!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。