Matplotlib.pyplot.plot_date() function in Python
Matplotlib is a module package or library in Python which is used for data visualization. Pyplot is an interface to a Matplotlib module that provides a MATLAB-like interface. The matplotlib.pyplot.plot_date()
function is like the regular plot()
function, but it's tailored for showing data over dates. Think of it as a handy tool for visualizing events or values that happen over time, making your time-related charts look sharp and clear.
Matplotlib.pyplot.plot_date() function Syntax
This function is used to add dates to the plot. Below is the syntax by which we can plot datetime on the x-axis Matplotlib.
Syntax: matplotlib.pyplot.plot_date(x, y, fmt='o', tz=None, xdate=True, ydate=False, data=None, **kwargs)
Parameters:
- x, y: x and y both are the coordinates of the data i.e. x-axis horizontally and y-axis vertically.
- fmt: It is a optional string parameter that contains the corresponding plot details like color, style etc.
- tz: tz stands for timezone used to label dates, default(UTC).
- xdate: xdate parameter contains boolean value. If xdate is true then x-axis is interpreted as date in matplotlib. By default xdate is true.
- ydate: If ydate is true then y-axis is interpreted as date in matplotlib. By default ydate is false.
- data: The data which is going to be used in plot.
The last parameter **kwargs is the Keyword arguments control the Line2D properties like animation, dash_ joint-style, colors, linewidth, linestyle, marker, etc.
Matplotlib.pyplot.plot_date() function Examples
Below are the examples by which we can see how to plot datetime on x axis matplotlib in Python:
Plotting a Date Series Using Matplotlib
In this example, dates are plotted against a numeric sequence using the matplotlib.pyplot.plot_date()
function, with green markers, and the x-axis date labels are rotated for better visibility.
# importing libraries
import matplotlib.pyplot as plt
from datetime import datetime
# creating array of dates for x axis
dates = [
datetime(2020, 6, 30),
datetime(2020, 7, 22),
datetime(2020, 8, 3),
datetime(2020, 9, 14)
]
# for y axis
x = [0, 1, 2, 3]
plt.plot_date(dates, x, 'g')
plt.xticks(rotation=70)
plt.show()
Output:
Creating a Plot Using Dataset
In this example, a Pandas DataFrame is used to store and plot market closing prices against dates. The plotted graph showcases closing amounts with red dashed lines.
# importing libraries
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime
# creating a dataframe
data = pd.DataFrame({'Date': [datetime(2020, 6, 30),
datetime(2020, 7, 22),
datetime(2020, 8, 3),
datetime(2020, 9, 14)],
'Close': [8800, 2600, 8500, 7400]})
# x-axis
price_date = data['Date']
# y-axis
price_close = data['Close']
plt.plot_date(price_date, price_close, linestyle='--', color='r')
plt.title('Market', fontweight="bold")
plt.xlabel('Date of Closing')
plt.ylabel('Closing Amount')
plt.show()
Output:
Customizing Date Formatting in a Market Closing Price Plot
In this example, after plotting market closing prices against dates, the date format is customized using the dateformatter
class to display dates in the format 'DD-MM-YYYY'.
# importing libraries
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime
# creating a dataframe
data = pd.DataFrame({'Date': [datetime(2020, 6, 30),
datetime(2020, 7, 22),
datetime(2020, 8, 3),
datetime(2020, 9, 14)],
'Close': [8800, 2600, 8500, 7400]})
# x-axis
price_date = data['Date']
# y-axis
price_close = data['Close']
plt.plot_date(price_date, price_close, linestyle='--', color='r')
plt.title('Market', fontweight="bold")
plt.xlabel('Date of Closing')
plt.ylabel('Closing Amount')
# Changing the format of the date using
# dateformatter class
format_date = mpl_dates.DateFormatter('%d-%m-%Y')
# getting the accurate current axes using gca()
plt.gca().xaxis.set_major_formatter(format_date)
plt.show()
Output:
The format of the date changed to dd-mm-yyyy. To know more about dataformatter and gca() click here.