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