首頁 > 後端開發 > Python教學 > 如何在 Matplotlib 中使用子圖建立不連續的 X 軸?

如何在 Matplotlib 中使用子圖建立不連續的 X 軸?

Barbara Streisand
發布: 2024-12-18 01:45:10
原創
823 人瀏覽過

How to Create Discontinuous X-Axes in Matplotlib Using Subplots?

Matplotlib 中的不連續軸

在 Matplotlib 中建立不連續的 x 軸可以增強資料中重大間隙的可見性。雖然自訂變換是一種有效的方法,但利用子圖可以輕鬆實現所需的不連續性。

一種方法涉及使用兩個子圖,共享 y 軸對齊。放大資料的不同部分並調整 x 軸限制以專注於特定部分。透過隱藏子圖之間的脊椎並調整刻度方向,您可以創建不連續性。

為了在視覺上更引人注目的斷軸效果,可以加入對角線。在軸座標中指定所需的對角線大小。停用剪切並為每個對角線設定適當的變換,以確保它落在軸的正確角內。透過利用此方法,對角線將隨著子圖之間的空間變化而動態調整。

以下是包含這些技術的範例程式碼:

import matplotlib.pyplot as plt
import numpy as np

# Generate sample data
x = np.r_[0:1:0.1, 9:10:0.1]
y = np.sin(x)

# Create subplots and set x-axis limits
fig, (ax, ax2) = plt.subplots(1, 2, sharey=True)
ax.set_xlim(0, 1)
ax2.set_xlim(9, 10)

# Plot data and hide spines
ax.plot(x, y, 'bo')
ax2.plot(x, y, 'bo')
ax.spines['right'].set_visible(False)
ax2.spines['left'].set_visible(False)
ax.yaxis.tick_left()
ax.tick_params(labeltop='off')
ax2.yaxis.tick_right()

# Adjust spacing and add diagonal lines
plt.subplots_adjust(wspace=0.15)

# Define diagonal line parameters
d = .015
kwargs = dict(transform=ax.transAxes, color='k', clip_on=False)
ax.plot((1 - d, 1 + d), (-d, +d), **kwargs)
ax.plot((1 - d, 1 + d), (1 - d, 1 + d), **kwargs)
kwargs.update(transform=ax2.transAxes)
ax2.plot((-d, d), (-d, +d), **kwargs)
ax2.plot((-d, d), (1 - d, 1 + d), **kwargs)

plt.show()
登入後複製

以上是如何在 Matplotlib 中使用子圖建立不連續的 X 軸?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板