Python繪圖庫Matplotlib的基本用法
一、前言
Matplotlib是Python的繪圖庫,不僅具備強(qiáng)大的繪圖功能,還能夠在很多平臺上使用,和Jupyter Notebook有極強(qiáng)的兼容性。
二、線型圖
import matplotlib.pyplot as plt import numpy as np # 指定生成隨機(jī)數(shù)的種子,這樣每次運(yùn)行得到的隨機(jī)數(shù)都是相同的 np.random.seed(42) # 生成30個(gè)滿足平均值為0、方差為1的正態(tài)分布的樣本 x = np.random.randn(30) # plot本意有“繪制(圖表)”的意思,所以下面這一行代碼是繪制圖表。r指定繪制的線條顏色為紅色,o指定標(biāo)記實(shí)際點(diǎn)使用的形狀為圓形,--指定線條形狀為虛線 plt.plot(x, "r--o") # 顯示圖表 plt.show()
三、線條顏色、標(biāo)記形狀和線型
線條顏色常用參數(shù):
- “b”:指定繪制的線條顏色為藍(lán)色。
- “g”:指定繪制的線條顏色為綠色。
- “r”:指定繪制的線條顏色為紅色。
- “c”:指定繪制的線條顏色為藍(lán)綠色。
- “m”:指定繪制的線條顏色為洋紅色。
- “y”:指定繪制的線條顏色為黃色。
- “k”:指定繪制的線條顏色為黑色。
- “w”:指定繪制的線條顏色為白色。
標(biāo)記形狀常用參數(shù):
- “o”:指定標(biāo)記實(shí)際點(diǎn)使用的形狀為圓形。
- “*”:指定標(biāo)記實(shí)際點(diǎn)使用的形狀為星形。
- “+”:指定標(biāo)記實(shí)際點(diǎn)使用的形狀為加號形狀。
- “x”:指定標(biāo)記實(shí)際點(diǎn)使用的形狀為x形狀。
線型常用參數(shù):
- “-”:指定線條形狀為實(shí)線。
- “–”:指定線條形狀為虛線。
- “-.”:指定線條形狀為點(diǎn)實(shí)線。
- “:”:指定線條形狀為點(diǎn)線。
import matplotlib.pyplot as plt import numpy as np # 未指定種子的值,所以最終產(chǎn)生的隨機(jī)數(shù)不同 # randn()生成30個(gè)滿足平均值為0、方差為1的正態(tài)分布的樣本 a = np.random.randn(30) b = np.random.randn(30) c = np.random.randn(30) d = np.random.randn(30) # a:紅色,虛線,圓形;b:藍(lán)色,實(shí)線,星號;c:綠色,點(diǎn)實(shí)線,加號;d:洋紅色,點(diǎn)線,x形狀 plt.plot(a, "r--o", b, "b-*", c, "g-.+", d, "m:x") plt.show(
四、標(biāo)簽和圖例
為了讓繪制的圖像更易理解,我們可以增加一些繪制圖像的說明,一般是添加圖像的軸標(biāo)簽和圖例,如下面的例子所示:
import matplotlib.pyplot as plt import numpy as np np.random.seed(42) x = np.random.randn(30) y = np.random.randn(30) # 圖表標(biāo)題 plt.title("Example") # 圖表標(biāo)簽 plt.xlabel("X") plt.ylabel("Y") # X, Y后面的逗號去掉會報(bào)出警告 X, = plt.plot(x, "r--o") Y, = plt.plot(y, "b-*") # 圖例顯示(顯示圖片右上角的圖例) # legend()有兩個(gè)列表參數(shù),第一個(gè)列表參數(shù)是圖中實(shí)際使用的標(biāo)記和線性,第二個(gè)列表參數(shù)是對應(yīng)圖例的文字描述 # legend本意:傳奇、圖例、解釋、說明,這里是圖例的意思 plt.legend([X, Y], ["X", "Y"]) plt.show()
五、子圖
當(dāng)需要將多個(gè)圖像同時(shí)在不同的位置顯示,則需要用到子圖(Subplot)的功能。
import matplotlib.pyplot as plt import numpy as np # 未指定隨機(jī)數(shù)種子的值 a = np.random.randn(30) b = np.random.randn(30) c = np.random.randn(30) d = np.random.randn(30) # 定義一個(gè)實(shí)例fig,相當(dāng)于子圖最外面的大圖 fig = plt.figure() # 向fig實(shí)例中添加需要的子圖,前兩個(gè)參數(shù)表示把大圖分成了2行2列,最后一個(gè)參數(shù)表示使用哪一張子圖進(jìn)行繪制 ax1 = fig.add_subplot(2, 2, 1) ax2 = fig.add_subplot(2, 2, 2) ax3 = fig.add_subplot(2, 2, 3) ax4 = fig.add_subplot(2, 2, 4) # 設(shè)置圖例 A, = ax1.plot(a, "r--o") ax1.legend([A], ["A"]) B, = ax2.plot(b, "b-*") ax2.legend([B], ["B"]) C, = ax3.plot(c, "g-.+") ax3.legend([C], ["C"]) D, = ax4.plot(d, "m:x") ax4.legend([D], ["D"]) plt.show()
六、散點(diǎn)圖
如果需要獲取的是一些散點(diǎn)數(shù)據(jù),則可以通過繪制散點(diǎn)圖(Scatter)來展示數(shù)據(jù)的分布和布局。
import matplotlib.pyplot as plt import numpy as np # 設(shè)置隨機(jī)數(shù)種子的值 np.random.seed(42) x = np.random.randn(30) y = np.random.randn(30) # 散點(diǎn)圖,scatter()的參數(shù)必須同時(shí)含有x, y plt.scatter(x, y, c = 'g', marker='o', label = "(X, Y)") # 散點(diǎn)圖的標(biāo)題 plt.title("Example") # 設(shè)置坐標(biāo)軸的標(biāo)簽 plt.xlabel("X") plt.ylabel("Y") # 設(shè)置圖例,loc=0表示使用最好的位置,loc=1強(qiáng)制圖例使用圖中右上角的位置,loc=2強(qiáng)制使用左上角位置,loc=3強(qiáng)制使用左下角位置,loc=4強(qiáng)制使用右下角位置 plt.legend(loc = 1) # 顯示圖像 plt.show()
scatter()方法中特別需要注意的參數(shù):
- “c”:指定散點(diǎn)圖中繪制的參數(shù)使用哪種顏色,這與第2部分線條常用參數(shù)相,所以這里g表示設(shè)置為綠色。
- “marker”:指定散點(diǎn)圖中繪制的參數(shù)點(diǎn)使用哪種形狀,和第2部分標(biāo)記形狀常用參數(shù)相同,所以這里o表示設(shè)置為圓形。
- “l(fā)abel”:指定在散點(diǎn)圖中繪制的參數(shù)使用的圖例,這里與第3部分圖例有所不同,注意區(qū)別。
七、直方圖
直方圖(Histogram)是一種統(tǒng)計(jì)報(bào)告圖,通過使用一些列高度不等的縱向條紋或直方表示數(shù)據(jù)分布的情況,一般用橫軸表示數(shù)據(jù)類型,縱軸表示分布情況。下面來看具體實(shí)例:
import matplotlib.pyplot as plt import numpy as np # 指定隨機(jī)數(shù)種子的值 np.random.seed(42) x = np.random.randn(1000) # 直方圖,bins表示繪制的直方圖的條紋的數(shù)量;color表示直方圖條紋的顏色,g表示綠色 plt.hist(x, bins = 20, color = 'g') # 設(shè)置標(biāo)題 plt.title("Example") # 設(shè)置坐標(biāo)軸標(biāo)簽 plt.xlabel("X") plt.ylabel("Y") # 顯示圖像 plt.show()
八、餅圖
import matplotlib.pyplot as plt # 標(biāo)簽 labels = ['Dos', 'Cats', 'Birds'] # sizes的三個(gè)數(shù)字確定了每部分?jǐn)?shù)據(jù)系列在整個(gè)圓形中的占比 sizes = [15, 50, 35] # 餅圖,explode定義每部分?jǐn)?shù)據(jù)系列之間的間隔,設(shè)置兩個(gè)0和一個(gè)0.1,就能突出第三部分;autopct將sizes中的數(shù)據(jù)以所定義的浮點(diǎn)數(shù)精度進(jìn)行顯示; # startangle是繪制第一塊餅圖時(shí),該餅圖與X軸正方向的夾角度數(shù),這是設(shè)置90度,默認(rèn)是0度。 plt.pie(sizes, explode = (0, 0, 0.1), labels = labels, autopct = '%1.1f%%', startangle = 90) # 下面的一行代碼必須存在,用于使X軸和Y軸的刻度時(shí)刻保持一致,只有這樣,最后得到的餅圖才是圓的 plt.axis('equal') # 顯示圖像 plt.show()
到此這篇關(guān)于Python繪圖庫Matplotlib的基本用法的文章就介紹到這了,更多相關(guān)Python Matplotlib的用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
django如何根據(jù)現(xiàn)有數(shù)據(jù)庫表生成model詳解
這篇文章主要給大家介紹了關(guān)于django如何根據(jù)現(xiàn)有數(shù)據(jù)庫表生成model的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Django具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-08-08Python3之外部文件調(diào)用Django程序操作model等文件實(shí)現(xiàn)方式
這篇文章主要介紹了Python3之外部文件調(diào)用Django程序操作model等文件實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04詳談Python 窗體(tkinter)表格數(shù)據(jù)(Treeview)
今天小編就為大家分享一篇詳談Python 窗體(tkinter)表格數(shù)據(jù)(Treeview),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10