Python的Matplotlib庫應(yīng)用實例超詳細教程
前言
Matplotlib庫是一款功能強大且靈活的Python數(shù)據(jù)可視化軟件包,它支持跨平臺運行,能夠根據(jù)NumPy ndarray數(shù)組繪制高質(zhì)量的2D圖像(也支持部分3D圖像)。Matplotlib提供了類MATLAB的繪圖API,使得繪圖過程簡單直觀,代碼清晰易懂。它廣泛應(yīng)用于數(shù)據(jù)分析、科學研究、報告生成以及教育與培訓等領(lǐng)域,用戶可以通過它創(chuàng)建多樣化的圖表類型,如折線圖、柱狀圖、散點圖等,并對圖表的各個元素進行高度定制化的調(diào)整。無論是簡單的圖表還是復雜的可視化需求,Matplotlib都能提供高質(zhì)量的輸出。
一、環(huán)境搭建
1.1 配置matplotlib庫
pip install matplotlib
安裝成功展示圖:
1.2 配置seaborn庫
pip install seaborn
安裝成功展示圖:
1.3 配置Skimage庫
pip install scikit-image
安裝成功展示圖:
二、二維圖像
2.1 曲線(直線)可視化
import matplotlib.pyplot as plt import numpy as np X = np.linspace(1, 15) Y = np.sin(X) # 圖像大小設(shè)置 plt.figure(figsize=(10,8)) # 繪制線 plt.plot(X, Y, color='red') plt.xlabel('X') plt.ylabel('Y') # 設(shè)置圖像標題名 plt.title("y = sin(X)") # 是否添加網(wǎng)格 plt.grid(True) # 繪制圖像 plt.show()
2.2 曲線(虛線)可視化
import matplotlib.pyplot as plt import numpy as np X = np.linspace(1, 15) Y = np.sin(X) # 圖像大小設(shè)置 plt.figure(figsize=(10,8)) # 繪制線 藍色 虛線 plt.plot(X, Y, "b-.") plt.xlabel(r"$\alpha$") plt.ylabel(r"$\beta$") # 設(shè)置圖像標題名 plt.title("$y=\sum sin(x)$") # 是否添加網(wǎng)格 plt.grid(True) # 繪制圖像 plt.show()
2.3 直方圖
import matplotlib.pyplot as plt import numpy as np import matplotlib matplotlib.rcParams['axes.unicode_minus'] = False import seaborn as sns sns.set(font = "Kaiti", style = "ticks", font_scale = 1.4) X = np.linspace(1, 15) Y = np.sin(X) # 圖像大小設(shè)置 plt.figure(figsize=(10,8)) # 生成數(shù)據(jù) data = np.random.randn(200, 1) # 可視化 plt.hist(data, 10) plt.xlabel("取值") plt.ylabel("頻數(shù)") plt.title("直方") # 繪制圖像 plt.show()
2.4 階梯圖
import matplotlib.pyplot as plt import numpy as np import matplotlib from matplotlib.pyplot import xticks matplotlib.rcParams['axes.unicode_minus'] = False import seaborn as sns sns.set(font = "Kaiti", style = "ticks", font_scale = 1.4) X = np.linspace(1, 15) Y = np.sin(X) # 圖像大小設(shè)置 plt.figure(figsize=(10,8)) # 階梯圖設(shè)置 plt.step(X, Y, c = "r", label = "sin(x)", linewidth = 3) # 添加輔助線 plt.plot(X, Y, "o--", color = "grey", alpha = 0.5) plt.xlabel("X") plt.ylabel("Y") plt.title("Bar") # 設(shè)置圖例位置及大小 plt.legend(loc = "lower right", fontsize = "small") # 設(shè)置X軸坐標系取值 xtick = [0, 5, 10, 15] xticklabels = [str(x) + "萬" for x in xtick] # x軸的坐標取值,傾斜度為45° plt.xticks(xtick, xticklabels, rotation = 45) # 調(diào)整水平空間距離 plt.subplots_adjust(hspace = 0.5) plt.show()
三、三維圖像
3.1 3D曲面圖
import matplotlib.pyplot as plt import numpy as np import matplotlib from matplotlib.pyplot import xticks from pyparsing import alphas matplotlib.rcParams['axes.unicode_minus'] = False import seaborn as sns sns.set(font = "Kaiti", style = "ticks", font_scale = 1.4) x = np.linspace(-4, 4, num = 50) y = np.linspace(-4, 4, num = 50) X, Y = np.meshgrid(x, y) Z = np.sin(np.sqrt(X**2 + Y**2)) # 3D曲面圖可視化 fig = plt.figure(figsize=(6, 5)) # 設(shè)置3D坐標 ax1 = fig.add_subplot(1, 1, 1, projection = '3d') # 繪制曲面圖, rstride:行的跨度 cstride:列的跨度 alpha:透明度 cmap:顏色 ax1.plot_surface(X, Y, Z, rstride = 1, cstride = 1, alpha = 0.5, cmap = plt.cm.coolwarm) # 繪制z軸方向的等高線 cset = ax1.contourf(X, Y, Z, zdir = 'z', offset = 1, cmap = plt.cm.CMRmap) ax1.set_xlabel("X") ax1.set_xlim(-4, 4) ax1.set_ylabel("Y") ax1.set_ylim(-4, 4) ax1.set_zlabel("Z") ax1.set_zlim(-1, 1) ax1.set_title("曲面圖和等高線") plt.show()
3.2 3D散點圖
import matplotlib.pyplot as plt import numpy as np import matplotlib from matplotlib.pyplot import xticks from pyparsing import alphas matplotlib.rcParams['axes.unicode_minus'] = False import seaborn as sns sns.set(font = "Kaiti", style = "ticks", font_scale = 1.4) theta = np.linspace(-4 * np.pi, 4 * np.pi, 100) x = np.cos(theta) y = np.sin(theta) z = np.linspace(-2, 2, 100) r = z ** 2 + 1 # 在子圖中繪制三維圖像 fig = plt.figure(figsize=(10, 10)) # 將坐標系設(shè)置為3D坐標系 ax1 = fig.add_subplot(1, 1, 1, projection='3d') ax1.plot(x, y, z, "b-") ax1.view_init(elev = 20, azim = 25) ax1.set_title("3D曲線圖") plt.show()
3.3 3D散點圖
import matplotlib.pyplot as plt import numpy as np import matplotlib from matplotlib.pyplot import xticks from pyparsing import alphas matplotlib.rcParams['axes.unicode_minus'] = False import seaborn as sns sns.set(font = "Kaiti", style = "ticks", font_scale = 1.4) theta = np.linspace(-4 * np.pi, 4 * np.pi, 100) x = np.cos(theta) y = np.sin(theta) z = np.linspace(-2, 2, 100) r = z ** 2 + 1 # 在子圖中繪制三維圖像 fig = plt.figure(figsize=(10, 10)) # 將坐標系設(shè)置為3D坐標系 ax1 = plt.subplot(1, 1, 1, projection='3d') ax1.scatter3D(x, y, z, c = "r", s = 20) ax1.view_init(elev = 20, azim = 25) ax1.set_title("3D散點圖") plt.show()
總結(jié)
到此這篇關(guān)于Python的Matplotlib庫應(yīng)用的文章就介紹到這了,更多相關(guān)Python Matplotlib庫應(yīng)用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Pytorch torch.repeat_interleave()用法示例詳解
torch.repeat_interleave() 是 PyTorch 中的一個函數(shù),用于按指定的方式重復張量中的元素,這篇文章主要介紹了Pytorch torch.repeat_interleave()用法示例詳解,需要的朋友可以參考下2024-01-01Python爬蟲實現(xiàn)爬取京東手機頁面的圖片(實例代碼)
下面小編就為大家分享一篇Python爬蟲實現(xiàn)爬取京東手機頁面的圖片實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-11-11Pandas中把dataframe轉(zhuǎn)成array的方法
下面小編就為大家分享一篇Pandas中把dataframe轉(zhuǎn)成array的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04