如何在Python中利用matplotlib.pyplot畫出函數(shù)圖詳解
0、引言
為了讓用戶能夠使用python時(shí),方便地繪制 2D 圖表,PYTHON的模塊中提供Matplotlib模塊中所含的子庫pyplot,提供了和 MATLAB 類似的繪圖功能。Pyplot 包含一系列繪圖函數(shù)的相關(guān)函數(shù),每個(gè)函數(shù)會(huì)對(duì)當(dāng)前的圖像進(jìn)行一些修改。本文通過繪制三角函數(shù)cos()來對(duì)其中一些重要函數(shù)進(jìn)行講解。
1、繪圖
(1)導(dǎo)入所需庫
import numpy as np import matplotlib.pyplot as plt # 用于顯示中文字符 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False
(2)設(shè)置函數(shù)
t = np.arange(0, 12, 0.01) s = np.cos(2 * np.pi * t)
(3)plt.figure()
figure()函數(shù)用于展開和設(shè)置畫布相關(guān)參數(shù),figure(num, figsize),num設(shè)置為數(shù)字時(shí)為畫布編號(hào),字符串時(shí)為畫布名;figsize用于設(shè)置畫布大?。ㄩL(zhǎng),寬)。兩者不是必須設(shè)置的,如果沒有,會(huì)自動(dòng)生成合適的結(jié)果。還有其他一些參數(shù)可以設(shè)置,但不常用,就不介紹了,想了解的自行搜索相關(guān)內(nèi)容。
plt.figure(num=1, figsize=(10, 10))
(4)plt.plot(),plt.axhline(),plt.axvline(),plt.axhspan(),plt.axvspan()
plot()用于繪制點(diǎn)和線
plt.plot(x, y, format_string, **kwargs),其中:
- x:X軸數(shù)據(jù),列表或數(shù)組,可選
- y:Y軸數(shù)據(jù),列表或數(shù)組
- format_string:控制曲線的格式字符串,可選。包括線條的顏色,樣式,寬度等
- **kwargs:第二組或更多(x,y,format_string),可畫多條曲線
plt.plot(t, s, color='red', ls='-', label='sinx')
plt.axhline(),plt.axvline()分別用于繪制平行于x軸和y軸的直線,參數(shù)設(shè)置和plt.plot()相似。
# 畫y=o的直線,平行于x軸; plt.axhline(y=0, color='green', lw=2, label='分割線') # 畫x=4的直線,平行于y軸; plt.axvline(x=0, color='b', lw=2, label='分割線2')
plt.axhspan(),plt.axvspan()用于繪制垂直于y軸和x軸的參考區(qū)域
# 繪制垂直于x軸的參考區(qū)域 plt.axhspan(ymin=0, ymax=.1, facecolor='r', alpha=0.2) plt.axvspan(xmin=0, xmax=1, facecolor='r', alpha=0.2)
(5)設(shè)置 x,y 軸的數(shù)值范圍
plt.axis([xmin, xmax, ymin, ymax])和plt.xlim(xmin, xmax),plt.ylim(ymin, ymax)功能相同,用于設(shè)置坐標(biāo)軸范圍;plt.xticks(list(range(xmin, xmax, 刻度間距))),plt.yticks(list(range((ymin, ymax, 刻度間距)))能更加精確地設(shè)置自己想要刻度。
# plt.axis([x_min, x_max, y_min, y_max]) # plt.xlim(0, 12) # plt.ylim(-1, 1) plt.xticks(list(range(0, 12, 2))) plt.yticks(list(range(-1, 2, 1)))
(6)設(shè)置 x,y 軸的標(biāo)題文本
plt.xlabel('x軸') plt.ylabel('y軸')
(7)設(shè)置圖例和標(biāo)題
plt.legend()' plt.title("正弦函數(shù)")
plt.legend()要想正常實(shí)現(xiàn)功能效果,plt.plot()中l(wèi)abel必須設(shè)置。
(8)plt.show()
必須有的函數(shù)。在關(guān)閉show()函數(shù)彈出的圖像窗口前,show()函數(shù)后面的代碼不會(huì)運(yùn)行,直到用戶關(guān)閉圖像窗口,才會(huì)繼續(xù)。
完整代碼:
import numpy as np import matplotlib.pyplot as plt # 用于顯示中文字符 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False # 預(yù)設(shè)參數(shù) t = np.arange(0, 12, 0.01) s = np.cos(2 * np.pi * t) s2 = np.sin(2 * np.pi * t) # 打開一個(gè)畫布 plt.figure(num=1, figsize=(10, 10)) # 畫函數(shù)線,沒有l(wèi)abel,圖例舊無法顯示 plt.plot(t, s, color='red', ls='-', label='cosx', ) # 畫y=o的直線,平行于x軸; plt.axhline(y=0, color='green', lw=2, label='分割線') # 畫x=4的直線,平行于y軸; plt.axvline(x=0, color='b', lw=2, label='分割線2') # 繪制垂直于x軸的參考區(qū)域 plt.axhspan(ymin=0, ymax=.1, facecolor='r', alpha=0.2) plt.axvspan(xmin=0, xmax=1, facecolor='r', alpha=0.2) # 設(shè)置 x,y 軸的數(shù)值范圍 # plt.axis([x_min, x_max, y_min, y_max]) # plt.xlim(0, 12) # plt.ylim(-1, 1) plt.xticks(list(range(0, 12, 2)))# 可調(diào)刻度 plt.yticks(list(range(-1, 2, 1))) # 設(shè)置 x,y 軸的標(biāo)題文本 plt.xlabel('x軸') plt.ylabel('y軸') # 設(shè)置圖例 #plt.legend(loc='upper left', bbox_to_anchor=(0.2, 0.95)) plt.legend() plt.title("正弦函數(shù)") # 在關(guān)閉show()函數(shù)彈出的圖像窗口前,show()函數(shù)后面的代碼不會(huì)運(yùn)行,直到用戶關(guān)閉圖像窗口,才會(huì)繼續(xù)。 plt.show()
2運(yùn)行結(jié)果
總結(jié)
到此這篇關(guān)于如何在Python中利用matplotlib.pyplot畫出函數(shù)圖的文章就介紹到這了,更多相關(guān)Python matplotlib.pyplot畫函數(shù)圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python利用matplotlib.pyplot繪圖時(shí)如何設(shè)置坐標(biāo)軸刻度
- python matplotlib.pyplot.plot()參數(shù)用法
- python數(shù)據(jù)可視化之matplotlib.pyplot基礎(chǔ)以及折線圖
- Python?matplotlib.pyplot.hist()繪制直方圖的方法實(shí)例
- Python數(shù)據(jù)可視化之matplotlib.pyplot繪圖的基本參數(shù)詳解
- Python?matplotlib.pyplot.subplots()用法詳解
- Python大數(shù)據(jù)處理之matplotlib.pyplot初步使用
相關(guān)文章
Django框架文件上傳與自定義圖片上傳路徑、上傳文件名操作分析
這篇文章主要介紹了Django框架文件上傳與自定義圖片上傳路徑、上傳文件名操作,結(jié)合實(shí)例形式分析了Django框架文件上傳的原理、步驟、實(shí)現(xiàn)方法以及圖片上傳時(shí)自定義上傳路徑、上傳文件名的相關(guān)操作技巧,需要的朋友可以參考下2019-05-05Python通過串口實(shí)現(xiàn)收發(fā)文件
這篇文章主要為大家詳細(xì)介紹了Python如何通過串口實(shí)現(xiàn)收發(fā)文件功能,文中的示例代碼簡(jiǎn)潔易懂,具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11Python 中檢查一個(gè)字符是否為數(shù)字的示例代碼
本文詳細(xì)介紹了在 Python 中檢查一個(gè)字符是否為數(shù)字的幾種常用方法。我們介紹了使用 isdigit() 方法、isnumeric() 方法和正則表達(dá)式等方法,并提供了示例代碼幫助你理解和應(yīng)用這些方法,需要的朋友可以參考下2023-06-06pygame面向?qū)ο蟮娘w行小鳥實(shí)現(xiàn)(Flappy bird)
這篇文章主要介紹了pygame面向?qū)ο蟮娘w行小鳥實(shí)現(xiàn)(Flappy bird),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04用map函數(shù)來完成Python并行任務(wù)的簡(jiǎn)單示例
這篇文章主要介紹了用map函數(shù)來完成Python并行任務(wù)的簡(jiǎn)單示例,多線程和多進(jìn)程編程的問題一直都是Python中的熱點(diǎn)和難點(diǎn),需要的朋友可以參考下2015-04-04