Matplotlib.dates.epoch2num() in Python

Last Updated : 19 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.epoch2num()

The matplotlib.dates.epoch2num() function is used to convert an epoch or a sequence of epochs to a new date format from the day since 0001.
Syntax: matplotlib.dates.epoch2num(e) Parameters:
  • e: It can be an epoch or a sequence of epochs.
Returns: A new date format since day 0001.
Example 1: Python3 1==
import random
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

# generate some random data
# for approx 5 yrs
random_data = [float(random.randint(1487517521,
                                    14213254713))
               for _ in range(1000)]

# convert the epoch format to
# matplotlib date format 
mpl_data = mdates.epoch2num(random_data)

# plotting the graph
fig, axes = plt.subplots(1, 1)
axes.hist(mpl_data, bins = 51, color ='green')
locator = mdates.AutoDateLocator()

axes.xaxis.set_major_locator(locator)
axes.xaxis.set_major_formatter(mdates.AutoDateFormatter(locator))

plt.show()
Output: Example 2: Python3 1==
from tkinter import *
from tkinter import ttk
import time 
import matplotlib
import queue
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk
from matplotlib.figure import Figure
import matplotlib.animation as animation
import matplotlib.dates as mdate


root = Tk()

graphXData = queue.Queue()
graphYData = queue.Queue()

def animate(objData):
    
    line.set_data(list(graphXData.queue), 
                  list(graphYData.queue))
    
    axes.relim()
    axes.autoscale_view()

figure = Figure(figsize =(5, 5), dpi = 100)
axes = figure.add_subplot(111)
axes.xaxis_date()

line, = axes.plot([], [])
axes.xaxis.set_major_formatter(mdate.DateFormatter('%H:%M'))

canvas = FigureCanvasTkAgg(figure, root)
canvas.get_tk_widget().pack(side = BOTTOM, 
                            fill = BOTH, 
                            expand = True)

for cnt in range (600):
    
    graphXData.put(matplotlib.dates.epoch2num(time.time()-(600-cnt)))
    graphYData.put(0)

ani = animation.FuncAnimation(figure, animate, interval = 1000)

root.mainloop()
Output:

Next Article

Similar Reads