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