اذهب إلى المحتوى
  • 0

حذف و تعديل العلامات xticks في ال plot باستخدام الأداة tick_params في Matplotlib

Ali Ismael

السؤال

لدي مخطط وأريد حذف أو إخفاء ال xticks منه كيف يمكن القيام بذلك؟ وكذلك كيف يمكننا التعديل عليها؟

import matplotlib.pyplot as plt
import numpy as np
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])
plt.subplot(1, 2, 1)
plt.title("First Plot")
plt.plot(x,y)
plt.show()

index.png.123dc95ea468c054a7f1a5f17effad01.png
 

تم التعديل في بواسطة Ali Ismael
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

يمكنك استخدام plt.tick_params التي تمكننا من التحكم بأمور مثل تغيير مظهر العلامات ticks، وعلامات التجزئة tick labels، وخطوط الشبكة gridlines. ولها الشكل التالي:

matplotlib.pyplot.tick_params(
  axis='both',bottom=True, top=True, left=True, 					                               right=True,labelbottom=True, labeltop=True,
  labelleft=True, labelright=True,direction="out",
  length=None,width =None,color=None,which="major"
  labelsize=None,labelcolor=None,pad=None
)

حيث أن axis تمثل المحاور التي نريد تطبيق التغيرات عليها ويأخذ القيم {'x', 'y', 'both'}.  والوسطاء bottom, top, left, right يحددون فيما إذا كانت العلامات ticks ستظهر أم لا في الاتجاهات المحدد ويأخذون قيمة منطقية إما True لإظهارها أو False لإخفائها مثلاً  bottom=True تعني أنك تريد إخفاء الticks  من المحور السيني . بالنسبة ل labelbottom, labeltop, labelleft, labelright فهم يحددون فيما إذا كنت تريد عرض الملصقات التي تكون بجانب ال ticks (الأرقام) ويأخذون قيمة منطقية إما True لإظهارها أو False لإخفائها. أما direction فهو يحدد الاتجاه الذي سيتم وضع العلامات فيه {'in', 'out', 'inout'}. أما length فلتحديد طول العلامات و width  لعرضها (قيم float). أما color فلتحديد لونها (مثلاً "r" أي أحمر). أما labelcolor و labelsize لتحديد لون وحجم الملصقات. أما which فكما نعلم قد يكون هناك ticks أساسية وثانوية فهنا من خلال هذا الوسيط أنت تحدد فيما إذا كنت تريد تطبيق التغيرات على العلامات الريسية أم الثانوية أم كلاهما {'major', 'minor', 'both'}. و pad لتحديد مقدار المسافة الفاصلة بين العلامات والملصقات. إليك المثال التالي لحذف العلامات من المحور السيني:

import matplotlib.pyplot as plt
import numpy as np
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])
plt.subplot(1, 2, 1)
plt.title("First Plot")
plt.plot(x,y)
plt.tick_params(
    axis='x',          # تطبيق التغيرات على المحور السيني فقط
    which='both',      # تطبيق التغيرات على العللامات الرئيسة كونه لاتوجد علامات فرعية
    bottom=0,      # إزالة العلامات من المحور السيني
    top=0,         # ....
    labelbottom=0) # إخفاء الأرقام
plt.show()

index.png.a10bff80d290687a8d4a5595e67b40ba.png

مثال آخر بشكل عام لتوضيح عمل الوسيط which وباقي الوسطاء حيث سنقوم بإضافة علامات رئيسية وفرعية وسنقوم بالتعديل عليها (يمكنك أن تجرب باقي الوسطاء وتتلاعب بقيمها):

from matplotlib.ticker import MultipleLocator, ScalarFormatter
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([0, 10, 20, 30], [0, 2, 1, 2])
ax.xaxis.set_minor_locator(MultipleLocator(1))
ax.xaxis.set_minor_formatter(ScalarFormatter())
ax.tick_params(axis ='both', which ='major',
			labelsize = 16, pad = 102,
			colors ='r')
ax.tick_params(axis ='both', which ='minor',
			labelsize = 8, colors ='b')
plt.show()

index2.png.5912078c5668f8618b4dae388f9bdd43.png

كذلك هناك الوسيط grid_color  للتحكم بلون خطوط الشبكة (إن وجدت) و grid_alpha  للتحكم بشفافيتها و grid_linewidth  للتحكم بعرضها (قيم float).

تم التعديل في بواسطة Ali Haidar Ahmad
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...