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

تقليل عدد علامات التجزئة ticks في Matplotlib في بايثون

Ali Ismael

السؤال

Recommended Posts

  • 1

يمكنك استخدام الأداة pyplot.locator_params كما يلي:

# للمحور Y 
matplotlib.pyplot.locator_params(axis='y', nbins=3) 
# للمحور X 
matplotlib.pyplot.locator_params(axis='x', nbins=3) 
# للمحورين معاً وهي الحالة الافتراضية
matplotlib.pyplot.locator_params(nbins=3) 

حيث أن nbins تشير إلى عدد ال ticks  التي تريدها أن تظهر.  ولتقليل العدد الأعظمي من العلامات واستخدام حدود ضيقة أيضاً نضبط الوسيط tight على true: 

plt.locator_params(tight=True, nbins=n)

مثال:


import numpy as np
import matplotlib.pyplot as plt
plt.locator_params(axis ='x', nbins = 5) # نريد إظهار 5 علامات فقط
x = np.random.normal(1, 2, 5000)
y = np.random.normal(-1, 3, 2000)
bins = np.linspace(-10, 10, 30)
# الخاص بك axes أخذ غرض يمثل ال 
ax = plt.axes()
ax.set_facecolor('black')
# هنا فقط لإضافة خطوط شبكة للرسم أي يمكنك تجاهلها
ax.grid(b = True, color ='w',
		linestyle ='-.', linewidth = 0.5,
		alpha = 0.6)
plt.hist([x,y], bins = 15,label=[x,y],color=["red","blue"])
legend = ['Data1','Data2']
plt.legend(legend)
plt.show()

والنتيجة:
index.png.645ae01356a22ed53f4b5e9ed65b8913.png

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

يمكنك ببساطة استخدام الدالة 

 matplotlib.pyplot.locator_params(axis=an_axis, nbins=num_ticks)

بنفس الطريقة التي في الاجابة السابقة.

بالاضافة لذلك تستطيع استخدام الدالة 

Matplotlib.ticker.MaxNLocator

والتي تضع حدا أقصي لعدد ال ticks عن طريق تمرير عدد ال bins بداخلها، لكن لاحظ أن عدد ال ticks يكون أكثر من الرقم الموضوع ب  1: المثال التالي يوضح ذلك:

import math
import numpy as np
import matplotlib.pyplot as plt 
from matplotlib.ticker import MaxNLocator

x=np.linspace(0,2*math.pi,100)
y=np.sin(x)

fig,axes=plt.subplots(1,1)

axes.plot(x, y)
axes.yaxis.set_major_locator(MaxNLocator(5)) #الحد الأقصي
axes.set_title("Sinx Function")
axes.set_xlabel("X")
axes.set_ylabel("sinX")
plt.show()

وتكون النتيجة كالتالي:

Capture.PNG.89375b7731ede578cbf84ae07b9f8473.PNG

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...