Мне нравится это решение (из Matplotlib Ploutting Cookbook ):
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
x = [0,5,9,10,15]
y = [0,1,2,3,4]
tick_spacing = 1
fig, ax = plt.subplots(1,1)
ax.plot(x,y)
ax.xaxis.set_major_locator(ticker.MultipleLocator(tick_spacing))
plt.show()
Это решение дает вам явное управление интервалом тика с помощью номера, указанного в ticker.MultipleLocater()
, позволяет автоматическое определение предела и легко читается позже.
Вам нужна функция, которая возвращает значение для поэтапной сортировки.
Внутри обратного вызова для сортировки вам нужно вернуть дельту двух значений, которая отражает отношение между двумя строками.
const compareWith = term => string => {
if (string === term) return 1;
if (term.startsWith(string)) return 2; // switch string and term
if (string.includes(term)) return 3; // use includes
return Infinity; // unknown strings move to the end
};
var array = ['Something here Hello', 'Hell', 'Hello'],
term = 'Hello',
order = compareWith(term);
array.sort((a, b) => order(a) - order(b));
console.log(array);