首頁 >後端開發 >Python教學 >簡單入門matplotlib:快速教程

簡單入門matplotlib:快速教程

WBOY
WBOY原創
2024-01-09 10:38:111385瀏覽

簡單入門matplotlib:快速教程

快速上手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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn