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:
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:
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: