शुद्ध पायथन कार्यान्वयन
वांछित कार्यक्षमता का एक शुद्ध अजगर कार्यान्वयन के नीचे, सकारात्मक, नकारात्मक या मिश्रित मूल्यों के साथ किसी भी संख्यात्मक श्रृंखला (इंट या फ्लोट) को संभालता है और उपयोगकर्ता को वांछित चरण आकार निर्दिष्ट करने की अनुमति देता है:
import math
def computeTicks (x, step = 5):
"""
Computes domain with given step encompassing series x
@ params
x - Required - A list-like object of integers or floats
step - Optional - Tick frequency
"""
xMax, xMin = math.ceil(max(x)), math.floor(min(x))
dMax, dMin = xMax + abs((xMax % step) - step) + (step if (xMax % step != 0) else 0), xMin - abs((xMin % step))
return range(dMin, dMax, step)
नमूना आउटपुट
# Negative to Positive
series = [-2, 18, 24, 29, 43]
print(list(computeTicks(series)))
[-5, 0, 5, 10, 15, 20, 25, 30, 35, 40, 45]
# Negative to 0
series = [-30, -14, -10, -9, -3, 0]
print(list(computeTicks(series)))
[-30, -25, -20, -15, -10, -5, 0]
# 0 to Positive
series = [19, 23, 24, 27]
print(list(computeTicks(series)))
[15, 20, 25, 30]
# Floats
series = [1.8, 12.0, 21.2]
print(list(computeTicks(series)))
[0, 5, 10, 15, 20, 25]
# Step – 100
series = [118.3, 293.2, 768.1]
print(list(computeTicks(series, step = 100)))
[100, 200, 300, 400, 500, 600, 700, 800]
नमूना उपयोग
import matplotlib.pyplot as plt
x = [0,5,9,10,15]
y = [0,1,2,3,4]
plt.plot(x,y)
plt.xticks(computeTicks(x))
plt.show()
ध्यान दें कि x- अक्ष में पूर्णांक मान 5 से समान रूप से होते हैं, जबकि y- अक्ष में एक अलग अंतराल ( matplotlib
डिफ़ॉल्ट व्यवहार होता है, क्योंकि टिक्स निर्दिष्ट नहीं किए गए थे)।