Open In App

Matplotlib.pyplot.stem() in Python

Last Updated : 21 Apr, 2020
Improve
Improve
Like Article
Like
Save
Share
Report

Matplotlib is a 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.pyplot.stem()

matplotlib.pyplot.stem() creates stem plots. A Stem plot plots vertical lines at each x position covered under the graph from the baseline to y, and places a marker there.

Syntax: stem([x, ] y, linefmt=None, markerfmt=None, basefmt=None)

Parameters:

  • x (array-like, optional): The x-positions of the stems. Default: (0, 1, …, len(y) – 1).
  • y (array-like): The y-values of the stem heads.
  • linefmt (str, optional): A string defining the properties of the vertical lines. Usually, this will be a color or a color and a linestyle:
    • ‘-‘: solid line
    • ‘–‘: dashed line
    • ‘-.’: dash-dot line
    • ‘:’ dotted line

    Note: While it is technically possible to specify valid formats other than color or color and linestyle (e.g. ‘rx’ or ‘-.’), this is beyond the intention of the method and will most likely not result in a reasonable plot.

  • markerfmt (str, optional): A string defining the properties of the markers at the stem heads. Default: ‘C0o’, i.e. filled circles with the first color of the color cycle.
  • basefmt (str, optional): A format string defining the properties of the baseline.
    Default: ‘C3-‘ (‘C2-‘ in classic mode).
  • bottom (float, optional, default: 0): The y-position of the baseline.
  • label (str, optional, default: None): The label to use for the stems in legends.
  • use_line_collection (bool, optional, default: False): If True, store and plot the stem lines as a LineCollection instead of individual lines. This significantly increases performance, and will become the default option in Matplotlib 3.3. If False, defaults to the old behavior of using a list of Line2D objects.

Returns :

container: StemContainer

The container may be treated like a tuple
(markerline, stemlines, baseline)

Example #1: Default plot

Stem plots vertical lines from a baseline to the y-coordinate and places a marker at the tip.




# importing libraries
import matplotlib.pyplot as plt
import numpy as np
  
x = np.linspace(0.1, 2 * np.pi, 41)
y = np.exp(np.sin(x))
  
plt.stem(x, y, use_line_collection = True)
plt.show()



Output :

matplotlib.pyplot.stem()
 
Example #2:
The position of the baseline can be adapted using bottom. The parameters linefmt, markerfmt, and basefmt control basic format properties of the plot. However, in contrast to plot not all properties are configurable via keyword arguments. For more advanced control adapt the line objects returned by pyplot.




# importing libraries
import random
import matplotlib.pyplot as plt
  
x = np.linspace(0.1, 2 * np.pi, 41)
y = np.exp(np.sin(x))
  
markerline, stemlines, baseline = plt.stem(
    x, y, linefmt ='grey', markerfmt ='D',
    bottom = 1.1, use_line_collection = True)
  
markerline.set_markerfacecolor('none')
plt.show()


Output:
matplotlib.pyplot.stem()



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads