Matplotlib - 弧度刻度



弧度是用於在數學和物理學中表達角度的角量單位。在資料視覺化領域,刻度是指指示座標軸刻度的小線或標記。

Matplotlib中的弧度刻度

在 Matplotlib 的上下文中,弧度刻度通常表示座標軸上以弧度表示值的刻度或標記。當處理圓形或角度資料時,通常在座標軸上使用弧度刻度來指示特定角度。設定弧度刻度包括在座標軸上以對應於特定弧度值的特定間隔放置刻度標記。

這是一張說明繪圖上弧度刻度的參考影像:

Radian_Ticks_Intro

在影像中,您可以觀察到弧度刻度表示沿 x 軸正弦波的角度。

x 軸的弧度刻度

設定 x 軸的弧度刻度涉及使用兩個關鍵方法:`axes.set_xticks()` 和 `axes.set_xticklabels()`。這些方法分別允許您指定 x 軸上刻度的位置和標籤。

除了這些方法之外,還可以使用 `matplotlib.ticker` 模組中的 `FormatStrFormatter` 和 `MultipleLocator` 類來增強刻度位置和標籤的自定義。

示例 1

以下示例演示如何建立帶有自定義弧度刻度的繪圖。

import matplotlib.pyplot as plt
import numpy as np

# Create plot
fig, ax = plt.subplots(figsize=(7, 4))

# Sample data
theta = np.linspace(0, 2 * np.pi, 100)
y = np.sin(theta)

# Plotting the data
plt.plot(theta, y)
plt.title('Sine Wave')
plt.xlabel('Angle (radians)')
plt.ylabel('Y-axis')

# Custom radian ticks and tick labels
custom_ticks = [0, np.pi/2, np.pi, (3*np.pi)/2, 2*np.pi]
custom_tick_labels = ['$0$', '$\pi/2$', '$\pi$', '$3\pi/2$', '$2\pi$']

ax.set_xticks(custom_ticks)
ax.set_xticklabels(custom_tick_labels)

plt.grid(axis='x')

# Display the plot
plt.show()

輸出

執行以上程式碼後,我們將得到以下輸出:

radian_ticks_ex1

示例 2

此示例使用 `matplotlib.ticker` 模組中的 `FormatStrFormatter` 和 `MultipleLocator` 類來控制刻度的格式和位置。

import matplotlib.pyplot as plt
import matplotlib.ticker as tck
import numpy as np

# Create Plot
f,ax=plt.subplots(figsize=(7,4))

# Sample Data
x=np.linspace(0, 2 * np.pi, 100)
y=np.sin(x)

# Plot the sine wave
ax.plot(x/np.pi,y)

# Customizing X-axis Ticks
ax.xaxis.set_major_formatter(tck.FormatStrFormatter('%g $\pi$'))
ax.xaxis.set_major_locator(tck.MultipleLocator(base=1.0))

# Set the titles
plt.title('Sine Wave')
plt.xlabel('Angle (radians)')
plt.ylabel('Y-axis')

plt.grid()
plt.show()

輸出

執行以上程式碼後,我們將得到以下輸出:

radian_ticks_ex2

y 軸的弧度刻度

與 x 軸類似,可以透過使用 `ax.set_yticks()` 和 `ax.set_yticklabels()` 方法來設定 y 軸的弧度刻度。這些方法允許您定義 y 軸上刻度的位置和標籤。此外,還可以使用 `matplotlib.ticker` 模組中的 `FormatStrFormatter` 和 `MultipleLocator` 類。

示例

此示例演示如何使用 `matplotlib.ticker` 模組中的 `FormatStrFormatter` 和 `MultipleLocator` 類來設定 y 軸的自定義弧度刻度。

import matplotlib.pyplot as plt
import matplotlib.ticker as tck
import numpy as np

# Create Plot
f,ax=plt.subplots(figsize=(7,4))

# Sample Data
x=np.arange(-10.0,10.0,0.1)
y=np.arctan(x)

# Plot the data
ax.plot(x/np.pi,y)

# Customizing y-axis Ticks
ax.yaxis.set_major_formatter(tck.FormatStrFormatter('%g $\pi$'))
ax.yaxis.set_major_locator(tck.MultipleLocator(base=0.5))

plt.grid()
plt.show()

輸出

執行以上程式碼後,我們將得到以下輸出:

radian_ticks_ex3

弧度刻度的自定義包

名為“basic_units.py”的自定義包可以使用弧度來表示刻度標記。此包不是標準或廣泛認可的包的一部分,需要單獨下載(可在 Matplotlib 的示例資料夾中找到)。

示例

此示例演示如何使用 basic_units 模擬示例包建立使用弧度的繪圖。

import matplotlib.pyplot as plt
from basic_units import radians
import numpy as np

# Create Plot
f,ax=plt.subplots(figsize=(7,4))

x = np.arange(-10.0,10.0,0.1)
y = list(map(lambda y: y*radians,np.arctan(x)))
x = list(map(lambda x: x*radians,x))

ax.plot(x,y,'b.')
plt.xlabel('radians')
plt.ylabel('radians')
plt.show()

輸出

執行以上程式碼後,我們將得到以下輸出:

radian_ticks_ex4
廣告