Нет, у них обоих есть свое использование:
Использование xrange()
при итерации, поскольку это сохраняет память. Скажите:
for x in xrange(1, one_zillion):
, а не:
for x in range(1, one_zillion):
, С другой стороны, используйте range()
, если Вы на самом деле хотите список чисел.
multiples_of_seven = range(7,100,7)
print "Multiples of seven < 100: ", multiples_of_seven
Я думаю, вам нужно «искусственно синтезировать» точную форму вашего графика. хотите, используя xticks
, чтобы установить метки галочки для строк, представляющих даты (конечно, ставя галочки с равными интервалами, даже если даты, которые вы представляете, не равноудалены), а затем используя простой участок
.
Обычно я использую NaN NumPy (не число) для недопустимых или отсутствующих значений. Они представлены Matplotlib как пробелы в графике, а NumPy является частью pylab / Matplotlib.
>>> import pylab
>>> xs = pylab.arange(10.) + 733632. # valid date range
>>> ys = [1,2,3,2,pylab.nan,2,3,2,5,2.4] # some data (one undefined)
>>> pylab.plot_date(xs, ys, ydate=False, linestyle='-', marker='')
[<matplotlib.lines.Line2D instance at 0x0378D418>]
>>> pylab.show()
Одной из заявленных функций scikits.timeseries является «Создание графиков временных рядов с разумно разнесенными метками осей».
Вы можете увидеть несколько примеров графиков здесь . В первом примере (показанном ниже) для данных используется «рабочая» частота, из которой автоматически исключаются праздничные и выходные дни и т.п. Он также маскирует недостающие точки данных, которые вы видите как пробелы на этом графике, а не линейно интерполируете их.
На сайте Matplotlib есть пример, как это сделать:
https://matplotlib.org/gallery/ticks_and_spines/date_index_formatter.html