Matplotlib.dates.datestr2num() in Python

Last Updated : 21 Apr, 2020
Comments
Improve
Suggest changes
Like Article
Like
Report
Matplotlib is an amazing visualization library in Python for 2D plots of arrays. Matplotlib is a multi-platform data visualization library built on NumPy arrays and designed to work with the broader SciPy stack.

matplotlib.dates.datestr2num()

The matplotlib.dates.datestr2num() function is used to convert a date string to a datenum by the uses of dateutil.parser.parser().
Syntax: matplotlib.dates.datestr2num(d, default=None) Parameters:
  1. d: It is a string or a sequence of strings representing the dates.
  2. default: This is an optional parameter that is a datetime instance. This is used when fields are not present in d, as a default.
Example 1: Python3
from datetime import datetime
import matplotlib.pyplot as plt
from matplotlib.dates import (
    DateFormatter, AutoDateLocator, AutoDateFormatter, datestr2num
)


days = [
    '30/01/2019',
    '31/01/2019', 
    '01/02/2019',
    '02/02/2019', 
    '03/02/2019', 
    '04/02/2019'
]
data1 = [2, 5, 13, 6, 11, 7]
data2 = [6, 3, 10, 3, 6, 5]

z = datestr2num([
    datetime.strptime(day, '%d/%m/%Y').strftime('%m/%d/%Y')
    for day in days
])

r = 0.25

figure = plt.figure(figsize =(8, 4))
axes = figure.add_subplot(111)

axes.bar(z - r, data1, width = 2 * r,
         color ='g', align ='center',
         tick_label = day)

axes.bar(z + r, data2, width = 2 * r,
         color ='y', align ='center', 
         tick_label = day)

axes.xaxis_date()
axes.xaxis.set_major_locator(
    AutoDateLocator(minticks = 3, interval_multiples = False))

axes.xaxis.set_major_formatter(DateFormatter("%d/%m/%y"))

plt.show()
Output: Example 2: Python3
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.dates


dates =  ['1920-05-06', 
          '1920-05-07', 
          '1947-05-08', 
          '1920-05-09']

converted_dates = matplotlib.dates.datestr2num(dates)

x_axis = (converted_dates)
y_axis = range(0, 4)

plt.plot_date( x_axis, y_axis, '-' )

plt.show()
Output:

Next Article

Similar Reads