快速上手matplotlib:簡潔教學
Matplotlib是一個著名的Python資料視覺化函式庫,提供了豐富的繪圖工具,廣泛應用於資料分析、科學計算、工程繪圖等領域。本文將為大家介紹如何快速上手matplotlib,並提供一些具體的程式碼範例。
一、安裝Matplotlib
在開始之前,我們首先需要安裝Matplotlib函式庫。可以透過pip指令來進行安裝:
pip install matplotlib
二、基本繪圖功能
2.1折線圖
折線圖是最常用的一種資料視覺化方式,可以顯示資料的趨勢變化。
下面是一個簡單的例子,展示了某地每年的降雨量情況:
import matplotlib.pyplot as plt years = [2015, 2016, 2017, 2018, 2019, 2020] rainfall = [800, 900, 850, 1000, 950, 1100] plt.plot(years, rainfall, marker='o', linestyle='--', color='blue') plt.xlabel('Year') plt.ylabel('Rainfall (mm)') plt.title('Annual Rainfall') plt.show()
在這個例子中,我們首先定義了兩個列表years和rainfall,分別表示年份和每年的降雨量。然後透過plt.plot()函數繪製了折線圖,指定了折線的樣式和顏色。最後,透過plt.xlabel()、plt.ylabel()和plt.title()函數設定了橫軸、縱軸的標籤和圖表的標題,並透過plt.show()函數顯示出圖表。
2.2散佈圖
散佈圖可以用來表示兩個變數之間的關係,並觀察它們之間的分佈規律。
下面是一個簡單的例子,展示了學生的體重和身高之間的關係:
import matplotlib.pyplot as plt weight = [50, 55, 60, 65, 70, 75] height = [150, 160, 165, 170, 175, 180] plt.scatter(weight, height, marker='o', color='red') plt.xlabel('Weight (kg)') plt.ylabel('Height (cm)') plt.title('Student Weight vs Height') plt.show()
在這個例子中,我們定義了兩個清單weight和height,分別表示學生的體重和身高。然後透過plt.scatter()函數繪製了散佈圖,指定了散點的樣式和顏色。最後,透過plt.xlabel()、plt.ylabel()和plt.title()函數設定了橫軸、縱軸的標籤和圖表的標題,並透過plt.show()函數顯示出圖表。
2.3長條圖
長條圖可以用來比較不同類別之間的資料大小。
下面是一個簡單的例子,顯示了某地每個月的降雨量情況:
import matplotlib.pyplot as plt months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'] rainfall = [50, 45, 60, 70, 65, 80] plt.bar(months, rainfall, color='green') plt.xlabel('Month') plt.ylabel('Rainfall (mm)') plt.title('Monthly Rainfall') plt.show()
在這個例子中,我們定義了兩個列表months和rainfall,分別表示月份和每個月的降雨量。然後透過plt.bar()函數繪製了長條圖,指定了柱子的顏色。最後,透過plt.xlabel()、plt.ylabel()和plt.title()函數設定了橫軸、縱軸的標籤和圖表的標題,並透過plt.show()函數顯示出圖表。
三、進階功能
除了基本的繪圖功能之外,Matplotlib還提供了許多進階的功能,例如子圖、圖例、標註等。
3.1子圖
可以使用plt.subplot()函數建立子圖,並在每個子圖中繪製不同的圖表。
下面是一個簡單的例子,展示了兩個子圖,分別為折線圖和散佈圖:
import matplotlib.pyplot as plt years = [2015, 2016, 2017, 2018, 2019, 2020] rainfall = [800, 900, 850, 1000, 950, 1100] weight = [50, 55, 60, 65, 70, 75] height = [150, 160, 165, 170, 175, 180] plt.subplot(1, 2, 1) plt.plot(years, rainfall, marker='o', linestyle='--', color='blue') plt.xlabel('Year') plt.ylabel('Rainfall (mm)') plt.title('Annual Rainfall') plt.subplot(1, 2, 2) plt.scatter(weight, height, marker='o', color='red') plt.xlabel('Weight (kg)') plt.ylabel('Height (cm)') plt.title('Student Weight vs Height') plt.tight_layout() plt.show()
在這個例子中,我們使用plt.subplot(1, 2, 1)和plt.subplot(1, 2, 2)分別創建了兩個子圖,其中(1, 2, 1)表示1行2列的子圖中的第一個子圖,(1, 2, 2 )表示1行2列的子圖中的第二個子圖。然後分別在每個子圖中繪製了不同的圖表。最後,透過plt.tight_layout()函數調整子圖的佈局,並透過plt.show()函數顯示出圖表。
3.2圖例
可以使用plt.legend()函數新增圖例,以說明不同資料對應的意義。
下面是一個簡單的例子,展示了某地每年和每月的降雨量情況,並添加了相應的圖例:
import matplotlib.pyplot as plt years = [2015, 2016, 2017, 2018, 2019, 2020] rainfall_year = [800, 900, 850, 1000, 950, 1100] months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'] rainfall_month = [50, 45, 60, 70, 65, 80] plt.plot(years, rainfall_year, marker='o', linestyle='--', color='blue', label='Yearly') plt.bar(months, rainfall_month, color='green', label='Monthly') plt.xlabel('Time') plt.ylabel('Rainfall (mm)') plt.title('Rainfall') plt.legend() plt.show()
在這個例子中,我們通過在plt. plot()和plt.bar()函數中加入label參數,分別指定了每年和每月降雨量對應的標籤,然後使用plt.legend()函數新增了圖例。最後,透過plt.xlabel()、plt.ylabel()和plt.title()函數設定了橫軸、縱軸的標籤和圖表的標題,並透過plt.show()函數顯示出圖表。
3.3標註
可以使用plt.annotate()函數在圖表中加入文字標註。
下面是一個簡單的例子,展示了某地每年降雨量的最大值,並在圖表中添加了相應的文本標註:
import matplotlib.pyplot as plt years = [2015, 2016, 2017, 2018, 2019, 2020] rainfall = [800, 900, 850, 1000, 950, 1100] plt.plot(years, rainfall, marker='o', linestyle='--', color='blue') plt.xlabel('Year') plt.ylabel('Rainfall (mm)') plt.title('Annual Rainfall') max_rainfall = max(rainfall) max_index = rainfall.index(max_rainfall) plt.annotate(f'Max: {max_rainfall}', xy=(years[max_index], max_rainfall), xytext=(years[max_index]+1, max_rainfall-50), arrowprops=dict(facecolor='black', arrowstyle='->')) plt.show()
在這個例子中,我們首先通過max()函數找到降雨量的最大值和對應的索引,然後使用plt.annotate()函數在圖表中加入文字標註,指定了標註的位置和箭頭的樣式。最後,透過plt.xlabel()、plt.ylabel()和plt.title()函數設定了橫軸、縱軸的標籤和圖表的標題,並透過plt.show()函數顯示出圖表。
四、總結
透過本文的介紹,我們可以看到Matplotlib是一個功能強大的資料視覺化函式庫,提供了豐富的繪圖工具。無論是折線圖、散佈圖或長條圖,Matplotlib都可以輕鬆實現。此外,Matplotlib也提供了一些進階的功能,如子圖、圖例、標註等,可以更靈活地客製化圖表。希望本教學能幫助大家快速上手Matplotlib,透過具體的程式碼範例,更能理解Matplotlib的使用方法。
以上是簡單入門matplotlib:快速教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!