matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (2024)

matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs)[source]#

Plot y versus x as lines and/or markers.

Call signatures:

plot([x], y, [fmt], *, data=None, **kwargs)plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)

The coordinates of the points or line nodes are given by x, y.

The optional parameter fmt is a convenient way for defining basicformatting like color, marker and linestyle. It's a shortcut stringnotation described in the Notes section below.

>>> plot(x, y) # plot x and y using default line style and color>>> plot(x, y, 'bo') # plot x and y using blue circle markers>>> plot(y) # plot y using x as index array 0..N-1>>> plot(y, 'r+') # ditto, but with red plusses

You can use Line2D properties as keyword arguments for morecontrol on the appearance. Line properties and fmt can be mixed.The following two calls yield identical results:

>>> plot(x, y, 'go--', linewidth=2, markersize=12)>>> plot(x, y, color='green', marker='o', linestyle='dashed',...  linewidth=2, markersize=12)

When conflicting with fmt, keyword arguments take precedence.

Plotting labelled data

There's a convenient way for plotting objects with labelled data (i.e.data that can be accessed by index obj['y']). Instead of givingthe data in x and y, you can provide the object in the dataparameter and just give the labels for x and y:

>>> plot('xlabel', 'ylabel', data=obj)

All indexable objects are supported. This could e.g. be a dict, apandas.DataFrame or a structured numpy array.

Plotting multiple sets of data

There are various ways to plot multiple sets of data.

  • The most straight forward way is just to call plot multiple times.Example:

    >>> plot(x1, y1, 'bo')>>> plot(x2, y2, 'go')
  • If x and/or y are 2D arrays, a separate data set will be drawnfor every column. If both x and y are 2D, they must have thesame shape. If only one of them is 2D with shape (N, m) the othermust have length N and will be used for every data set m.

    Example:

    >>> x = [1, 2, 3]>>> y = np.array([[1, 2], [3, 4], [5, 6]])>>> plot(x, y)

    is equivalent to:

    >>> for col in range(y.shape[1]):...  plot(x, y[:, col])
  • The third way is to specify multiple sets of [x], y, [fmt]groups:

    >>> plot(x1, y1, 'g^', x2, y2, 'g-')

    In this case, any additional keyword argument applies to alldatasets. Also, this syntax cannot be combined with the dataparameter.

By default, each line is assigned a different style specified by a'style cycle'. The fmt and line property parameters are onlynecessary if you want explicit deviations from these defaults.Alternatively, you can also change the style cycle usingrcParams["axes.prop_cycle"] (default: cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])).

Parameters:
x, yarray-like or scalar

The horizontal / vertical coordinates of the data points.x values are optional and default to range(len(y)).

Commonly, these parameters are 1D arrays.

They can also be scalars, or two-dimensional (in that case, thecolumns represent separate data sets).

These arguments cannot be passed as keywords.

fmtstr, optional

A format string, e.g. 'ro' for red circles. See the Notessection for a full description of the format strings.

Format strings are just an abbreviation for quickly settingbasic line properties. All of these and more can also becontrolled by keyword arguments.

This argument cannot be passed as keyword.

dataindexable object, optional

An object with labelled data. If given, provide the label names toplot in x and y.

Note

Technically there's a slight ambiguity in calls where thesecond label is a valid fmt. plot('n', 'o', data=obj)could be plt(x, y) or plt(y, fmt). In such cases,the former interpretation is chosen, but a warning is issued.You may suppress the warning by adding an empty format stringplot('n', 'o', '', data=obj).

Returns:
list of Line2D

A list of lines representing the plotted data.

Other Parameters:
scalex, scaleybool, default: True

These parameters determine if the view limits are adapted to thedata limits. The values are passed on toautoscale_view.

**kwargsLine2D properties, optional

kwargs are used to specify properties like a line label (forauto legends), linewidth, antialiasing, marker face color.Example:

>>> plot([1, 2, 3], [1, 2, 3], 'go-', label='line 1', linewidth=2)>>> plot([1, 2, 3], [1, 4, 9], 'rs', label='line 2')

If you specify multiple lines with one plot call, the kwargs applyto all those lines. In case the label object is iterable, eachelement is used as labels for each set of data.

Here is a list of available Line2D properties:

Property

Description

agg_filter

a filter function, which takes a (m, n, 3) float array and a dpi value, and returns a (m, n, 3) array and two offsets from the bottom left corner of the image

alpha

scalar or None

animated

bool

antialiased or aa

bool

clip_box

BboxBase or None

clip_on

bool

clip_path

Patch or (Path, Transform) or None

color or c

color

dash_capstyle

CapStyle or {'butt', 'projecting', 'round'}

dash_joinstyle

JoinStyle or {'miter', 'round', 'bevel'}

dashes

sequence of floats (on/off ink in points) or (None, None)

data

(2, N) array or two 1D arrays

drawstyle or ds

{'default', 'steps', 'steps-pre', 'steps-mid', 'steps-post'}, default: 'default'

figure

Figure

fillstyle

{'full', 'left', 'right', 'bottom', 'top', 'none'}

gapcolor

color or None

gid

str

in_layout

bool

label

object

linestyle or ls

{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}

linewidth or lw

float

marker

marker style string, Path or MarkerStyle

markeredgecolor or mec

color

markeredgewidth or mew

float

markerfacecolor or mfc

color

markerfacecoloralt or mfcalt

color

markersize or ms

float

markevery

None or int or (int, int) or slice or list[int] or float or (float, float) or list[bool]

mouseover

bool

path_effects

list of AbstractPathEffect

picker

float or callable[[Artist, Event], tuple[bool, dict]]

pickradius

float

rasterized

bool

sketch_params

(scale: float, length: float, randomness: float)

snap

bool or None

solid_capstyle

CapStyle or {'butt', 'projecting', 'round'}

solid_joinstyle

JoinStyle or {'miter', 'round', 'bevel'}

transform

unknown

url

str

visible

bool

xdata

1D array

ydata

1D array

zorder

float

See also

scatter

XY scatter plot with markers of varying size and/or color ( sometimes also called bubble chart).

Notes

Note

This is the pyplot wrapper for axes.Axes.plot.

Format Strings

A format string consists of a part for color, marker and line:

fmt = '[marker][line][color]'

Each of them is optional. If not provided, the value from the stylecycle is used. Exception: If line is given, but no marker,the data will be a line without markers.

Other combinations such as [color][marker][line] are alsosupported, but note that their parsing may be ambiguous.

Markers

character

description

'.'

point marker

','

pixel marker

'o'

circle marker

'v'

triangle_down marker

'^'

triangle_up marker

'<'

triangle_left marker

'>'

triangle_right marker

'1'

tri_down marker

'2'

tri_up marker

'3'

tri_left marker

'4'

tri_right marker

'8'

octagon marker

's'

square marker

'p'

pentagon marker

'P'

plus (filled) marker

'*'

star marker

'h'

hexagon1 marker

'H'

hexagon2 marker

'+'

plus marker

'x'

x marker

'X'

x (filled) marker

'D'

diamond marker

'd'

thin_diamond marker

'|'

vline marker

'_'

hline marker

Line Styles

character

description

'-'

solid line style

'--'

dashed line style

'-.'

dash-dot line style

':'

dotted line style

Example format strings:

'b' # blue markers with default shape'or' # red circles'-g' # green solid line'--' # dashed line with default color'^k:' # black triangle_up markers connected by a dotted line

Colors

The supported color abbreviations are the single letter codes

character

color

'b'

blue

'g'

green

'r'

red

'c'

cyan

'm'

magenta

'y'

yellow

'k'

black

'w'

white

and the 'CN' colors that index into the default property cycle.

If the color is the only part of the format string, you canadditionally use any matplotlib.colors spec, e.g. full names('green') or hex strings ('#008000').

Examples using matplotlib.pyplot.plot#

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (1)

Plotting masked and NaN values

Plotting masked and NaN values

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (2)

Scatter Masked

Scatter Masked

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (3)

Simple Plot

Simple Plot

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (4)

Stairs Demo

Stairs Demo

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (5)

Step Demo

Step Demo

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (6)

Triinterp Demo

Triinterp Demo

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (7)

Custom Figure subclasses

Custom Figure subclasses

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (8)

Managing multiple figures in pyplot

Managing multiple figures in pyplot

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (9)

Shared axis

Shared axis

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (10)

Multiple subplots

Multiple subplots

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (11)

Polar plot

Polar plot

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (12)

Polar legend

Polar legend

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (13)

Align y-labels

Align y-labels

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (14)

Legend using pre-defined labels

Legend using pre-defined labels

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (15)

Controlling style of text and labels using a dictionary

Controlling style of text and labels using a dictionary

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (16)

Title positioning

Title positioning

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (17)

Color by y-value

Color by y-value

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (18)

Dolphins

Dolphins

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (19)

Solarized Light stylesheet

Solarized Light stylesheet

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (20)

Infinite lines

Infinite lines

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (21)

Simple plot

Simple plot

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (22)

Text and mathtext using pyplot

Text and mathtext using pyplot

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (23)

Multiple lines using pyplot

Multiple lines using pyplot

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (24)

Two subplots using pyplot

Two subplots using pyplot

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (25)

Frame grabbing

Frame grabbing

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (26)

Coords Report

Coords Report

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (27)

Customize Rc

Customize Rc

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (28)

Findobj Demo

Findobj Demo

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (29)

Multipage PDF

Multipage PDF

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (30)

Print Stdout

Print Stdout

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (31)

Set and get properties

Set and get properties

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (32)

transforms.offset_copy

transforms.offset_copy

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (33)

Zorder Demo

Zorder Demo

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (34)

Custom scale

Custom scale

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (35)

Placing date ticks using recurrence rules

Placing date ticks using recurrence rules

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (36)

CanvasAgg demo

CanvasAgg demo

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (37)

Tool Manager

Tool Manager

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (38)

Pyplot tutorial

Pyplot tutorial

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (39)

Quick start guide

Quick start guide

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (40)

Customizing Matplotlib with style sheets and rcParams

Customizing Matplotlib with style sheets and rcParams

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (41)

Path effects guide

Path effects guide

matplotlib.pyplot.plot — Matplotlib 3.9.2 documentation (2024)
Top Articles
Latest Posts
Recommended Articles
Article information

Author: Edwin Metz

Last Updated:

Views: 5409

Rating: 4.8 / 5 (58 voted)

Reviews: 89% of readers found this page helpful

Author information

Name: Edwin Metz

Birthday: 1997-04-16

Address: 51593 Leanne Light, Kuphalmouth, DE 50012-5183

Phone: +639107620957

Job: Corporate Banking Technician

Hobby: Reading, scrapbook, role-playing games, Fishing, Fishing, Scuba diving, Beekeeping

Introduction: My name is Edwin Metz, I am a fair, energetic, helpful, brave, outstanding, nice, helpful person who loves writing and wants to share my knowledge and understanding with you.