Matplotlib の不連続軸
Matplotlib で不連続な X 軸を作成すると、データ内の大きなギャップの可視性が向上します。カスタム変換は効率的なアプローチですが、サブプロットを利用すると、目的の不連続性を簡単に実現できます。
1 つの方法では、2 つのサブプロットを使用して、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 中国語 Web サイトの他の関連記事を参照してください。