簡介
????????matplotlib 是 Python 中最流行的數據可視化庫之一,它可以創建各種高質量的圖表。無論是簡單的折線圖,還是復雜的 3D 圖形,matplotlib 都能輕松應對。它提供了類似 MATLAB 的繪圖接口,使得用戶可以非常方便地進行圖表的創建和定制。
?matplotlib 的一些主要特點和功能:
????????豐富的繪圖功能: matplotlib 提供了多種繪圖函數,可以繪制各種類型的圖表,包括線圖、散點圖、柱狀圖、餅圖、等高線圖等。
????????自定義設置: 用戶可以對圖表的各種屬性進行自定義設置,如顏色、線型、標記、標題、坐標軸標簽等。
????????交互式繪圖: matplotlib 支持交互式繪圖,用戶可以使用鼠標對圖表進行縮放、平移等操作。
????????多種輸出格式: 用戶可以將繪制的圖表保存為多種格式的文件,包括 PNG、PDF、SVG 等。
????????與 NumPy 和 Pandas 集成: matplotlib 可以與 NumPy 和 Pandas 庫無縫集成,方便用戶處理和可視化數據。
????????支持多種繪圖風格: matplotlib 提供了多種預定義的繪圖風格,用戶可以根據需要選擇合適的風格。
????????關于 matplotlib了解一點基礎的畫圖方法就行,它就是為我們后面學習機器學習和深度學習提供一個簡單的繪圖工具
1.安裝matplotlib
pip install matplotlib
????????后面也可以加上清華鏡像園下載更快
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
2.matplotlib 繪制折線圖
折線圖是最基本的圖表類型之一,用于展示數據隨時間或其他連續變量的變化趨勢。
import matplotlib.pyplot as plt
import numpy as np# 準備數據
x = np.linspace(0, 10, 100) # 生成0到10之間的100個均勻分布的點
y = np.sin(x) # 計算正弦值# 創建圖表和子圖
plt.figure(figsize=(8, 4)) # 創建一個大小為8x4英寸的圖表# 繪制圖形
plt.plot(x, y, label='sin(x)') # 繪制折線圖# 設置圖表屬性
plt.title('Sin Function') # 設置標題
plt.xlabel('x') # 設置x軸標簽
plt.ylabel('y') # 設置y軸標簽
plt.grid(True) # 顯示網格線
plt.legend() # 顯示圖例# 顯示圖表
plt.show()
3. matplotlib 繪制散點圖
散點圖用于展示兩個變量之間的關系,每個數據點用一個點表示。
import matplotlib.pyplot as plt
import numpy as np# 準備數據
x = np.random.rand(100) # 生成100個0到1之間的隨機數
y = np.random.rand(100)
colors = np.random.rand(100) # 隨機顏色
sizes = 1000 * np.random.rand(100) # 隨機大小# 繪制散點圖
plt.figure(figsize=(8, 6))
plt.scatter(x, y, c=colors, s=sizes, alpha=0.5) # alpha表示透明度# 設置圖表屬性
plt.title('Scatter Plot')
plt.xlabel('X')
plt.ylabel('Y')
plt.colorbar() # 顯示顏色條plt.show()
4.matplotlib 繪制柱狀圖
柱狀圖用于比較不同類別之間的數據差異。
import matplotlib.pyplot as plt
import numpy as np# 準備數據
categories = ['A', 'B', 'C', 'D', 'E']
values = [25, 40, 30, 20, 45]# 繪制柱狀圖
plt.figure(figsize=(10, 6))
plt.bar(categories, values, color='skyblue')# 設置圖表屬性
plt.title('Bar Chart')
plt.xlabel('Categories')
plt.ylabel('Values')plt.show()
5.matplotlib 繪制餅圖
餅圖用于展示數據的比例關系。
import matplotlib.pyplot as plt# 準備數據
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
explode = (0, 0.1, 0, 0) # 突出顯示第二個部分# 繪制餅圖
plt.figure(figsize=(8, 8))
plt.pie(sizes, explode=explode, labels=labels, colors=colors,autopct='%1.1f%%', shadow=True, startangle=90)# 設置圖表屬性
plt.axis('equal') # 使餅圖為正圓形
plt.title('Pie Chart')plt.show()
6.matplotlib 繪制直方圖
直方圖用于展示數據的分布情況。
import matplotlib.pyplot as plt
import numpy as np# 準備數據
data = np.random.randn(1000) # 生成1000個符合標準正態分布的隨機數# 繪制直方圖
plt.figure(figsize=(10, 6))
plt.hist(data, bins=30, alpha=0.7, color='skyblue') # bins表示直方圖的箱數# 設置圖表屬性
plt.title('Histogram')
plt.xlabel('Value')
plt.ylabel('Frequency')plt.show()
7.matplotlib 繪制多子圖布局
matplotlib 允許在一個圖表中創建多個子圖,便于比較不同的數據。
使用 subplot 函數
import matplotlib.pyplot as plt
import numpy as np# 生成0到10之間的100個均勻分布的點作為x軸數據
x = np.linspace(0, 10, 100)# 計算不同的函數值作為y軸數據
y1 = np.sin(x) # 正弦函數
y2 = np.cos(x) # 余弦函數
y3 = np.tan(x) # 正切函數
y4 = np.sin(x ** 2) # x平方的正弦函數
y5 = np.arccos(x) # 反余弦函數
y6 = np.arctan(x) # 反正切函數# 創建一個2行3列的子圖布局,圖形尺寸為10x8英寸
fig, axs = plt.subplots(2, 3, figsize=(10, 8))# 在第一行第一列的子圖中繪制正弦函數,顏色為紅色
axs[0, 0].plot(x, y1, 'r')
axs[0, 0].set_title('sin(x)')# 在第一行第二列的子圖中繪制余弦函數,顏色為綠色
axs[0, 1].plot(x, y2, 'g')
axs[0, 1].set_title('cos(x)')# 在第二行第一列的子圖中繪制正切函數,顏色為藍色
axs[1, 0].plot(x, y3, 'b')
axs[1, 0].set_title('tan(x)')# 在第二行第二列的子圖中繪制x平方的正弦函數,顏色為洋紅色
axs[1, 1].plot(x, y4, 'm')
axs[1, 1].set_title('sin(x^2)')# 在第一行第三列的子圖中繪制反余弦函數,顏色為紅色
axs[0, 2].plot(x, y5, 'r')
axs[0, 2].set_title('arccos')# 在第二行第三列的子圖中繪制反正切函數,顏色為紅色
axs[1, 2].plot(x, y6, 'r')
axs[1, 2].set_title('arctan')# 顯示圖形
plt.show()