圖解Matplotlib繪圖方法:從基礎到高級,需要具體程式碼範例
引言:
Matplotlib是一個功能強大的繪圖函式庫,常用於資料視覺化。無論是簡單的折線圖,或是複雜的散佈圖和3D圖,Matplotlib都能滿足你的需求。本文將詳細介紹Matplotlib的繪圖方法,從基礎到高級,同時提供具體的程式碼範例。
一、Matplotlib的安裝與導入
二、繪製簡單的折線圖
下面是一個簡單的折線圖範例,展示了某公司過去12個月的銷售變化。
import matplotlib.pyplot as plt # 数据 months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] sales = [100, 120, 150, 130, 140, 160, 180, 170, 190, 200, 210, 220] # 创建图表和画布 plt.figure(figsize=(8, 6)) # 绘制折线图 plt.plot(months, sales, marker='o', linestyle='-', color='blue') # 设置标题和标签 plt.title('Sales Trend') plt.xlabel('Months') plt.ylabel('Sales') # 显示图表 plt.show()
三、自訂圖表風格
Matplotlib提供了豐富的圖表風格設置,可以讓你的圖表更具個性和美觀。
調整顏色和線型
plt.plot(months, sales, marker='o', linestyle='-', color='blue')
可以透過marker參數設定標記樣式,linestyle參數設定線型,color參數設定顏色。
設定圖例
plt.plot(months, sales, marker='o', linestyle='-', color='blue', label='Sales') plt.legend()
使用label參數設定圖例標籤,然後使用plt.legend()方法顯示圖例。
新增網格線
plt.grid(True)
使用plt.grid(True)方法可以新增網格線。
四、繪製散佈圖和長條圖
除了折線圖,Matplotlib也支援繪製散佈圖和長條圖。
import matplotlib.pyplot as plt # 数据 temperature = [15, 19, 22, 18, 25, 28, 30, 29, 24, 20] rainfall = [20, 40, 30, 10, 55, 60, 70, 50, 45, 35] # 创建图表和画布 plt.figure(figsize=(8, 6)) # 绘制散点图 plt.scatter(temperature, rainfall, color='red') # 设置标题和标签 plt.title('Temperature vs Rainfall') plt.xlabel('Temperature (°C)') plt.ylabel('Rainfall (mm)') # 显示图表 plt.show()
import matplotlib.pyplot as plt # 数据 regions = ['North', 'South', 'East', 'West'] sales = [100, 120, 150, 130] # 创建图表和画布 plt.figure(figsize=(8, 6)) # 绘制条形图 plt.bar(regions, sales, color='blue') # 设置标题和标签 plt.title('Sales by Region') plt.xlabel('Region') plt.ylabel('Sales') # 显示图表 plt.show()
五、繪製進階圖表
Matplotlib還可以繪製更複雜的圖表,如圓餅圖和3D圖。
import matplotlib.pyplot as plt # 数据 products = ['A', 'B', 'C', 'D'] sales = [30, 20, 25, 15] # 创建图表和画布 plt.figure(figsize=(8, 6)) # 绘制饼图 plt.pie(sales, labels=products, autopct='%.1f%%') # 设置标题 plt.title('Sales by Product') # 显示图表 plt.show()
import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D # 数据 x = np.linspace(-5, 5, 100) y = np.linspace(-5, 5, 100) X, Y = np.meshgrid(x, y) Z = np.sin(np.sqrt(X**2 + Y**2)) # 创建图表和画布 fig = plt.figure(figsize=(8, 6)) ax = fig.add_subplot(111, projection='3d') # 绘制3D图 ax.plot_surface(X, Y, Z, cmap='viridis') # 设置标题和标签 ax.set_title('3D Surface Plot') ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Z') # 显示图表 plt.show()
結論:
透過本文的介紹和範例,我們可以了解到Matplotlib的繪圖方法和使用技巧。無論是簡單的折線圖,還是複雜的散佈圖和3D圖,Matplotlib提供了豐富的功能和選項,可以滿足不同需求的資料視覺化。希望本文對初學者和熟練者都能有所幫助,能夠更好地使用Matplotlib進行資料分析和展示。
以上是從初級到高級,圖解Matplotlib繪圖的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!