إنشاء محاور متقطعة في Matplotlib
المقدمة:
عند إنشاء مخططات باستخدام Matplotlib، عادةً ما يتم استخدام المحور السيني المستمر. ومع ذلك، قد تكون هناك حالات حيث يكون المحور غير المستمر مرغوبًا فيه، حيث تحدث فجوة أو قفزة في قيم المحور السيني. يمكن أن يكون هذا مفيدًا لعرض البيانات ذات القيم المفقودة أو الموزعة بشكل متناثر.استخدام المخططات الفرعية:
أحد الأساليب لإنشاء محور غير متواصل هو استخدام المخططات الفرعية. يمكن تعيين نطاق مختلف من قيم المحور السيني لكل مخطط فرعي، مما يؤدي إلى وجود فجوة بين المخططات الفرعية. إليك مثال بسيط:
import matplotlib.pyplot as plt x1 = np.linspace(0, 5, 100) y1 = np.sin(x1) x2 = np.linspace(10، 15، 100) y2 = np.cos(x2) مؤامرة فرعية (1، 2، 1) مؤامرة (x1، y1) مؤامرة فرعية (1، 2، 2) مؤامرة (x2، y2) plt.show()
import matplotlib.pyplot as plt x1 = np.linspace(0, 5, 100) y1 = np.sin(x1) x2 = np.linspace(10, 15, 100) y2 = np.cos(x2) plt.subplot(1, 2, 1) plt.plot(x1, y1) plt.subplot(1, 2, 2) plt.plot(x2, y2) plt.show()تحويل المحور المخصص:
هناك طريقة أخرى لإنشاء محور غير متواصل وهي استخدام تحويل محور مخصص. من خلال تحديد فئة تحويل جديدة، يمكننا تحديد كيفية تعيين البيانات إلى المحور. يوضح الكود التالي هذا الأسلوب:
import matplotlib.pyplot as plt من matplotlib.transforms استيراد التحويل من matplotlib.ticker قم باستيراد LogLocator فئة التحويل غير المستمر (التحويل): ديف __init__(الذات، فواصل): تحويل.__init__(ذاتي) self.breaks = فواصل تحويل ديف (الذات، القيم): new_values =values.copy() لكسر في النفس. القيم الجديدة [القيم > استراحة] = 1 إرجاع قيم_جديدة معكوس بالتأكيد (النفس): إرجاع InvertedDiscontiniousTransform(self.breaks) فئة InvertedDiscontiniousTransform (التحويل): ديف __init__(الذات، فواصل): تحويل.__init__(ذاتي) self.breaks = فواصل تحويل ديف (الذات، القيم): new_values =values.copy() لكسر في النفس. new_values[القيم >= فاصل] -= 1 إرجاع قيم_جديدة معكوس بالتأكيد (النفس): إرجاع التحويل غير المستمر (self.breaks) س = np.linspace(0، 10، 100) ص = np.sin(x) العابرة = التحويل المتقطع([5]) محدد الموقع = LogLocator (الأساس = 10) locator.set_params(minor_locator=لا شيء) plt.plot(x, y, تحويل=trans) plt.gca().xaxis.set_major_locator(locator) plt.gca().xaxis.set_major_formatter(plt.FormatStrFormatter("%0.0f\n(pert)")) plt.show()
import matplotlib.pyplot as plt x1 = np.linspace(0, 5, 100) y1 = np.sin(x1) x2 = np.linspace(10, 15, 100) y2 = np.cos(x2) plt.subplot(1, 2, 1) plt.plot(x1, y1) plt.subplot(1, 2, 2) plt.plot(x2, y2) plt.show()الخلاصة:
يمكن تحقيق إنشاء محور متقطع في Matplotlib باستخدام المخططات الفرعية أو تحويلات المحاور المخصصة. يوفر أسلوب التحويل المخصص مزيدًا من المرونة والتحكم في سلوك المحور. يمكن أن تكون كلتا الطريقتين فعالتين لتصور البيانات التي تحتوي على فجوات أو انقطاعات.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3